Я только что обновил свое приложение на Heroku с Rails 3.0 до 3.1 и пытаюсь заставить работать конвейер ресурсов. Основная проблема заключается в том, что я могу прочитать из журнала heroku следующие виды строк для каждого актива:
2011-09-03T16:35:28+00:00 app[web.1]: cache: [GET /assets/border-a3c571a354b9381740db48aeebfaa63a.jpg] miss
Если я правильно понимаю конвейер, это не должно быть «пропущено» для каждого запроса, который я делаю из браузера, но он должен быть найден в кеше.
Читая документы Heroku, вы можете найти это объяснение:
Rails 3.1 provides an assets:precompile rake task to allow the compilation penalty to be paid up front rather than each time the asset is requested. If this task exists in your app we will execute it when you push new code.
Но какой должна быть задача "assets: precompile"? Я попытался создать проект с использованием rails 3.1 с нуля, чтобы попытаться выяснить это, но в голом проекте такой задачи нет. Или я что-то упустил? Как я могу сделать так, чтобы активы находились в кеше? Возможно, это просто проблема с конфигурацией.
Это параметры моего производственного конфигурационного файла:
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true # If I turn this off I get a 500 error and logs say that an asset isn't compiled
В моем application.rb есть эта строка:
config.assets.enabled = true
Большое спасибо за вашу помощь!