我有一个Rails 4.2.4(
Ruby 2.2.2)应用程序,我通过Cloudfront提供静态资产.
如果Cloudfront正在提供您不想要的东西,则有两种可能性:
但是,当我改变
Rails.application.config.assets.version =’1.0′
至
Rails.application.config.assets.version =’2.0′
(在config / initializers / assets.rb中)
和
>删除公共/资产中的所有资产
>运行“RAILS_ENV =分段捆绑exec rake assets:precompile”
我发现使application.scss的消化文件无效的唯一方法是添加一些虚拟内容,以激发新的md5校验和.
我究竟做错了什么?
不应该新的assets.version改变消化的文件名?
最好的问候!
解决方法
根据
the comments in the Rails pull request I opened,这是一个需要修正的回归:
https://github.com/rails/sprockets-rails/issues/240
更新:as sansarp提到,该github问题中列出的其中一个解决方法是使用旧版本的链轮:
gem 'sprockets','< 3.0.0'
另一个解决方法是将资产路径用作缓存区段:
# config/initializers/assets.rb Rails.application.config.assets.prefix = "/assets/v1"