Rails 生产资产管道将随机字符串插入到错误位置的文件名中

use*_*377 2 ruby ruby-on-rails ruby-on-rails-3 asset-pipeline ruby-on-rails-3.2

我尽我最大的努力寻找这个问题,但不知道如何描述它,更不用说搜索它了,所以我想我会发布我所拥有的,如果它是重复的,有人会让我知道。很长时间以来都是这样的读者,但以前从未问过我自己的问题,所以这对我来说很令人兴奋:)

因此,在典型的 Rails 生产环境(Rails 3.2 + Ruby 1.9.3)上,资产管道将向资产文件名添加随机的数字和字母字符串,因此 application.css 变得类似于 application-2df8ae4bac143d750f200d4768826126.css

好吧,一些图像在生产中遇到了文件名被错误修改的问题。出于某种原因,这只发生在活动按钮上。例如,如果我有初始的 button.jpg 并且一旦点击它就变成 button-2df8ae4bac143d750f-hover.jpg 当原始是 button-hover.jpg 所以我猜可能与预编译有关?任何帮助将不胜感激,如果这是一个重复的帖子,也提前道歉。

SoA*_*Man 5

这是通过为单个资产禁用资产指纹识别的两种解决方案

# config/application.rb
config.assets.digest = false  
Run Code Online (Sandbox Code Playgroud)

或者

# single asset
asset_path('app.js', :digest => false) 
Run Code Online (Sandbox Code Playgroud)

它被称为“指纹”,请参见此处:http : //guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark