带有 CDN 版本的 css 图像路径

Posted

技术标签:

【中文标题】带有 CDN 版本的 css 图像路径【英文标题】:css image path with version for CDN 【发布时间】:2014-03-24 01:29:45 【问题描述】:

我正在使用以下范例来处理我的 CDN 缓存: 每个路径都包含“?version”,例如:http://mycdn.com/some-javascript-file.js?123

我的所有资源(js、css、图像)都使用相同的范例,我遇到的问题是 css 文件中的图像路径。

例如,我的一个 css 中有以下 sn-p:

“网址(../../Images/example.png)”

问题是这个图像路径不使用版本范例,我想以某种方式将版本添加到路径中,有没有很好的方法可以做到这一点,除了以下方法: 1) 对于每个图像更改 - 还使用一些虚拟版本更改 css。

"url (../../Images/example.png?1)" - 更改 1

"url (../../Images/example.png?55)" - 更改 2

2) 将我所有的 css 文件转换为 aspx 文件并使用代码隐藏来定义版本:

""

3) 使用无点库:http://www.dotlesscss.org/

还有其他简单/好主意吗?

【问题讨论】:

【参考方案1】:

我发现的最佳解决方案是将版本标记更改为 url 的开头并使用 url rewrite 来处理请求。 因此,例如,如果我曾经有:

http://website/Content/Images/1.png?123456

这将变成:

http://website/123456/Content/Images/1.png

请注意,我使用 url 重写来处理请求,以便 http://website/123456/Content/Images/1.png 实际上会从 http://website/Content/Images/1.png 带来数据

【讨论】:

以上是关于带有 CDN 版本的 css 图像路径的主要内容,如果未能解决你的问题,请参考以下文章

Google 的 CDN 上是不是有 jQuery UI CSS 主题的缩小/压缩版本?

sh 查找本地资产并替换CDN版本的路径;在建立生产之后使用

使用带有响应式设计/流体宽度 CSS 的 jCrop

带有剪切路径的 imagemagick 锯齿边缘

CSS:IE:样式“背景颜色:rgba(...)”的版本

Gulp自动添加版本号