我正在使用以下范例来处理我的CDN缓存: 每个路径都包含“?version”,例如:http://mycdn.com/some-javascript-file.js?123
同样的范例用于我的所有资源(js,css,images),我遇到的问题是css文件中的图像路径。
例如,我在我的一个css中有以下代码段:
“url(../../ Images / example.png)”
问题是这个图像路径不使用版本范例,我想以某种方式将版本添加到路径中,除了以下方法之外,还有一种很好的方法: 1)对于每个图像更改 - 也用一些虚拟版本更改css。
“url(../../Images / example.png?1)” - 更改1
“url(../../Images/example.png?55)” - 更改2
2)将我的所有css文件转换为aspx文件,并使用代码隐藏来定义版本:
“<%= html.VersionUrl(”../../ Images / example.png“)%>”
3)使用dotless lib:http://www.dotlesscss.org/
还有其他简单/好主意吗?
答案 0 :(得分:0)
我发现的最佳解决方案是将版本标记更改为url的开头,并使用url rewrite来处理请求。 因此,如果我曾经有过:
http://website/Content/Images/1.png?123456
这将成为:
http://website/123456/Content/Images/1.png
请注意,我使用url rewrite来处理请求,以便http://website/123456/Content/Images/1.png
实际上从http://website/Content/Images/1.png