因为我在我的应用程序中使用的jQuery插件直接引用了图像,所以我试图关闭资产指纹识别。
所以我在我的production.rb中设置config.assets.digest = false
,但现在我的图像引用都没有。 /assets/foo.png
只会返回一个空白回复。
我真的不想改变jQuery插件的代码并添加erb图像帮助器,但我不知道还能做什么。坦率地说,图像的资产指纹识别似乎比它的价值要麻烦得多。
有人有任何见解吗?
谢谢!
答案 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不为远期标头提供服务),并确保服务器上没有设置标头。