Rails资产管道视网膜@ 2x和缓存占用时间戳是不一致的

msa*_*nce 11 ruby-on-rails retina-display asset-pipeline retina.js

retina.js在文件扩展名之前查找具有相同文件名但带有@ 2x的图像

rails资产管道将缓存清除时间戳添加到文件名的末尾

这意味着retina.js正在寻找,filename-cachebuster@2x.png但文件是filename@2x-cachebuster.png

有人为此工作吗?

谁错了,即filename@2x-cachebuster.png如果原始文件名匹配指示其具有缓存清除哈希的模式,或者应该更改rails管道以确保@ 2x总是在...之前,应该训练retina.js查找文件.文件扩展名?

msa*_*nce 5

这似乎是一些工作本身,但看起来正确的方法是:

<%= image_tag('image', retina: true) %>
Run Code Online (Sandbox Code Playgroud)

这将添加retina.js将获取的正确data-at2x属性


Jus*_*ner 5

retina.js文档建议使用导轨helper方法:

def image_tag_with_at2x(name_at_1x, options={})
  name_at_2x = name_at_1x.gsub(%r{\.\w+$}, '@2x\0')
  image_tag(name_at_1x, options.merge("data-at2x" => asset_path(name_at_2x)))
end
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看retina.js文档.

另外,请确保您拥有最新版本的retina.js,并支持该data-at2x属性.