最近在Heroku上从3.2升级到Rails 4.0.2。我注意到,我的stylesheet_link_tag
和javascript_include_tag
标记可能指向我的开发路径(即/assets/admin.css
),而不是我的生成/预编译@指纹路径,例如{{1} }
以下是production.rb的相关设置:
/assets/admin-a334a2cf57ed6ffc29f7f7a1af35f380.css
因为我在Heroku上,所以# 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
中有config.assets.initialize_on_precompile = false
。如果我对资产文件进行了任何更改,那么在部署之前我总是运行application.rb
。
这是我的文件夹层次结构:
bundle exec rake assets:precompile
这是我的application.config
app
-assets
-images
-javascripts
-stylesheets
-themes
dark.css
blue.css
etc...
admin.css
application.css
jobboard.css
但由于某种原因,我在制作中遇到了这种不一致的行为。所有文件都预编译。但有时admin.css文件没有被指纹引用,对于/ themes下的css文件也是如此。有关为什么会发生这种情况的任何线索?
答案 0 :(得分:0)
如果缺少预编译文件,您可以将它们添加到config / application.rb
中config.assets.precompile += %w( admin.css )
然后
RAILS_ENV=production bundle exec rake assets:precompile
您可以在清单(公共/资产)中检查丢失的文件或查看指纹。