2014-01-13 2 views
0

Недавно обновлено до 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. Есть ли подсказка, почему это может произойти?

+0

Можете ли вы перекомпилировать свои активы, чтобы узнать, есть ли ошибка или отсутствует файл во время процесса? –

ответ

0

Если есть недостающий файл прекомпиляции может быть, вы должны добавить их в конфиге/application.rb

config.assets.precompile += %w(admin.css) 

, а затем

RAILS_ENV=production bundle exec rake assets:precompile 

Вы можете проверить в манифесте (государственные/активы) для пропавших без вести файл или увидеть отпечаток пальца.

+0

Спасибо. У меня есть все мои файлы, перечисленные в config/application.rb. Ничего не сообщается как пропавших без вести. – cman77

+0

Спасибо. Эта проблема не в том, что они отсутствуют. Это то, что когда-то ссылается на правильную/предварительно скомпилированную версию, и иногда ссылается на версию разработки. Когда версия dev упоминается в процессе производства - ее нет, и поэтому css не отображается. – cman77

+0

Является ли это случайным файлом или всегда то же самое, что задействовано? –

Смежные вопросы