retina.js查找具有相同文件名但在文件扩展名
之前使用@ 2x的图像rails资产管道将缓存清除时间戳添加到文件名的末尾
这意味着retina.js正在寻找filename-cachebuster@2x.png
,但文件位于filename@2x-cachebuster.png
任何人都有解决这个问题的方法吗?
这是错误的,即如果原始文件名与指示其具有缓存清除哈希的模式匹配,或者应该更改rails管道,则应该训练retina.js在filename@2x-cachebuster.png
查找文件@ 2x总是在文件扩展名之前?
答案 0 :(得分:5)
这看起来像是一些工作本身,但看起来正确的方法是:
<%= image_tag('image', retina: true) %>
这将添加retina.js将接收的正确data-at2x属性
答案 1 :(得分:5)
retina.js
文档建议使用rails 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
有关详细信息,请查看 retina.js documentation 。
另外,请确保您拥有最新版本的 retina.js ,并支持data-at2x
属性。
答案 2 :(得分:1)
对于除图像标记以外的任何内容(即CSS背景图像,在我工作的大多数应用程序中使用的img
标签比.at2x(@path, @w: auto, @h: auto) {
background-image: image-url(@path);
@at2x_path: ~`"@{path}".replace(/(.*)\.([^.]+)$/, "$1@2x.$2")`;
@media all and (-webkit-min-device-pixel-ratio : 1.5) {
background-image: image-url(@at2x_path);
background-size: @w @h;
}
}
标签使用得更广泛),我已经通过编写一些LESS帮助程序解决了这个问题这就像一个魅力。
{{1}}