Rails 3.1 Asset Pipeline – 关闭Heroku上的图像资产指纹识别?

因为我在我的应用程序中使用的jQuery插件直接引用了图像,所以我试图关闭资产指纹识别。

所以我在我的production.rb中设置了config.assets.digest = false ,但现在我的图像引用都没有。 /assets/foo.png只返回一个空白响应。

我真的不想改变jQuery插件的代码并添加erb图像助手,但我不知道还能做什么。 坦率地说,图像的资产指纹识别似乎比它的价值要麻烦得多。

有人有任何见解吗?

谢谢!

如果您使用的是大型插件,例如ckeditor,那么您唯一真正的选择是将该插件移动到公共目录中。

对于较小的插件,您可以将其图像移动到正确的资产路径中。 例如,如果您的插件引用了plugin文件夹下的images/icon.jpg ,则需要将其移动到app/assets/images/plugin_name/icon.png ,然后在插件中引用<%= asset_tag('plugin_name/icon.png') %>

管道是值得的。 在生产中不使用摘要几乎否定了使用它的重点,即设置远期标题以便资产在某处缓存。

如果您已设置删除摘要,则必须预先编译资产(以便Sprockets不为远期标头提供服务),并确保服务器上未设置任何标头。

有人为此目的制作了一个gem:

https://github.com/spohlenz/digestion

资产管道是Rails 3.1的一个很好的新组件。 然而,它有一个称为指纹识别的function,使得无法将许多流行的JavaScript库(包括TinyMCE,CKEditor和FancyZoom等)正确地合并到资产管道中。

此gem通过禁用特定文件或路径的指纹识别function来修补资产管道以允许使用这些库。