Rails 3.1资产管道 - 关闭Heroku上的图像资产指纹识别?

时间:2011-09-11 01:48:13

标签: ruby-on-rails ruby-on-rails-3 heroku ruby-on-rails-3.1 asset-pipeline

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

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

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

有人有任何见解吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

有人为此目的做了一个宝石:

https://github.com/spohlenz/digestion

  

资产管道是Rails 3.1的一个很好的新组件。不过它   有一个称为指纹识别的功能,使其无法实现   正确合并许多流行的JavaScript库(包括   TinyMCE,CKEditor和FancyZoom(仅举几例)进入资产   管道

     

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

答案 1 :(得分:1)

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

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

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

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