2013-07-09 2 views
0

Мы предварительно скомпилируем наши активы локально, прежде чем нажимать на Heroku - так что есть масса публичных файлов/активов, которые по большей части Heroku использует на производстве - мы видя записи компиляции активов в журнале 0ms. Тем не менее, мы получаем ошибки таймаута, когда Heroku достигает javascript_include_tag "application" в нашем заголовке макета и пытается перекомпилировать все js снова и снова.Heroku компилирует активы, которые локально предварительно скомпилированы

Должно ли это случиться? Как мы можем заставить Heroku использовать только локально скомпилированные активы и не продолжать тратить 50% на компиляцию активов? Масштабирование динамиков действительно помогает, но на самом деле это не касается основной причины.

// редактировать, чтобы объяснить, как мы используем конвейер активов //

У нас есть файл в приложении/активы/JavaScript называемого application.js - это файл манифест, который относится ко всем javascript нам нужно загрузить. Вот фрагмент:

//= require js/libs/jquery-1.7.2.min 
//= require js/libs/jquery-ui-1.8.21.custom.min 
//= require js/libs/jquery.ui.touch-punch.min 
//= require js/libs/less-1.3.0.min 
//= require js/libs/modernizr-2.5.3.min 

В этом файле находятся 55 строк.

Затем мы используем javascript_include_tag "application" в приложении/views/layouts/application.html.haml для вызова этого файла манифеста.

ответ

0

существует несколько способов использования трубопровода активов Rails на Heroku, и, как вы не дают нам много деталей о реализации, единственное, что я могу рекомендовать читает это: https://devcenter.heroku.com/articles/rails-asset-pipeline

Если вы обновляете вопрос с точными деталями реализации я мог бы попытаться быть более полезным.

+0

Большое спасибо за замечание - вопрос отредактирован. – snowangel

+0

Вы нажали папку public/assets в Git (включая manifest.yml)? –

+0

Да, действительно, и когда мы подталкиваем к Героку, это идентифицируется. – snowangel

0

Проверьте Config/сред/production.rb настройки:

config.assets.compile = false 
config.assets.initialize_on_precompile = true 
Смежные вопросы