Недавно обновлено до Rails 4.0.2 с 3.2 по Heroku. Я заметил, что, может быть, каждый толчок мои stylesheet_link_tag
и javascript_include_tag
теги указывают на моем пути развития (т.е. /assets/admin.css
) вместо моего производства/предварительной компиляции @ отпечатки пальцев пути, такие как /assets/admin-a334a2cf57ed6ffc29f7f7a1af35f380.css
несогласованные активы precompiling Rails 4 и Heroku
здесь соответствующая настройка из production.rb:
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
Потому что я на Heroku у меня config.assets.initialize_on_precompile = false
в application.rb
. Поэтому я всегда запускаю bundle exec rake assets:precompile
перед развертыванием, если внес изменения в файлы активов.
Вот моя иерархия папок:
app
-assets
-images
-javascripts
-stylesheets
-themes
dark.css
blue.css
etc...
admin.css
application.css
jobboard.css
вот мой application.config
config.assets.precompile += [
'admin.css',
'admin.js',
'jobboard.js',
'jobboard.css',
'themes/dark.css',
'themes/blue.css',
'themes/green.css',
'themes/plain.css',
'themes/seafoam-flat.css',
'themes/fire-flat.css'
]
Но по какой-то причине, я получаю это противоречивое поведение в производстве. Все файлы предварительно скомпилированы. Но иногда файл admin.css не ссылается на отпечаток пальца, то же самое для файлов css под/themes. Есть ли подсказка, почему это может произойти?
Можете ли вы перекомпилировать свои активы, чтобы узнать, есть ли ошибка или отсутствует файл во время процесса? –