【发布时间】:2015-06-11 09:09:14
【问题描述】:
我的 Rails 4 应用程序中的 CSS 和 Javascript 无法在生产环境中加载,但在 staging 中成功。 config/environments/staging.rb 和 config/environments/production.rb 之间的唯一区别是这一行:
config.assets.compile = true 暂存,并且
config.assets.compile = false 在生产中。
在暂存和生产中,我在部署期间都打开rake assets:precompile。是的,指纹资产位于public/assets
我很想举手,大喊“见鬼,我还有其他东西要编码”,然后 just set config.assets.compile = true on production,但据我所知,这启用了实时编译,它可以动态编译 Sass 和 CoffeeScripts,而且我不希望在我们的实时网站上征收那种绩效税。
但是,在生产环境中设置 config.assets.compile = false 不会生成正确的指纹 URL 来正确指向预编译的资产。
在 staging 中,我的 application.css 很高兴地指向了https://staging.example.com/assets/application-8b1ca5ff4a98a7b28b0e932fe7412421.css。这很好,很好,很幸福,很棒。
在生产中,它令人沮丧地指向https://www.example.com/stylesheets/application.css
然后我如何在生产环境中使用不带实时编译的资产管道(Sprockets)?任何能在我头发枯竭之前帮助我的人都会非常感激。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4