retina.js查找具有相同的文件名的图像,但与@ 2个文件扩展名前
导轨资产管道增加了缓存无效时间戳的文件名末尾
这意味着retina.js正在寻找filename-cachebuster@2x.png
但该文件是在filename@2x-cachebuster.png
任何人对此有一个解决办法?
谁的错在这也就是说,应该retina.js接受培训,以寻找在文件filename@2x-cachebuster.png
如果原来的文件名,表示它有一个缓存无效散列,还是应该导轨管道被改变,以确保一个模式相匹配@ 2X是永远只是文件扩展名之前?
这似乎有点像工作围绕在其本身不过貌似正确的方法来做到这一点:
<%= image_tag('image', retina: true) %>
这将添加正确的数据at2x的属性,retina.js将回暖
该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
欲了解更多信息,请检查retina.js文档 。
另外,请确保您有最新版本的retina.js ,支持data-at2x
属性。
对于除图像标签以外的任何其他(即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;
}
}