因为我在应用程序中使用的 jQuery 插件直接引用了图像,所以我试图关闭资产指纹识别。
所以我config.assets.digest = false
在我的 production.rb 中设置,但现在我的图像参考都不起作用。/assets/foo.png
只是返回一个空白响应。
我真的不想更改 jQuery 插件的代码并添加 erb 图像助手,但我不确定还能做什么。坦率地说,图像的资产指纹识别似乎比它的价值要麻烦得多。
有没有人有任何见识?
谢谢!
因为我在应用程序中使用的 jQuery 插件直接引用了图像,所以我试图关闭资产指纹识别。
所以我config.assets.digest = false
在我的 production.rb 中设置,但现在我的图像参考都不起作用。/assets/foo.png
只是返回一个空白响应。
我真的不想更改 jQuery 插件的代码并添加 erb 图像助手,但我不确定还能做什么。坦率地说,图像的资产指纹识别似乎比它的价值要麻烦得多。
有没有人有任何见识?
谢谢!
有人为此制作了一颗宝石:
https://github.com/sophlenz/digestion
资产管道是 Rails 3.1 的一个很棒的新组件。然而,它有一个称为指纹识别的功能,它使得无法将许多流行的 JavaScript 库(包括 TinyMCE、CKEditor 和 FancyZoom 仅举几例)正确地合并到资产管道中。
此 gem 通过禁用特定文件或路径的指纹识别功能来修补资产管道以允许使用这些库。
如果您使用的是大型插件,例如 ckeditor,那么您唯一真正的选择就是将该插件移动到公共目录中。
对于较小的插件,您可以将它们的图像移动到正确的资产路径中。例如,如果您的插件images/icon.jpg
在插件文件夹下引用,则需要将其移动到类似的位置app/assets/images/plugin_name/icon.png
,然后在插件中使用<%= asset_tag('plugin_name/icon.png') %>
.
管道是值得的。在生产中不使用摘要几乎完全否定了使用它的意义,即设置远期标头,以便资产缓存在某处。
如果您打算删除摘要,则必须预编译资产(以便 Sprockets 不会为它们提供远期标头),并确保在服务器上未设置标头。