autoversioning图像链接INSIDE css和javascript文件?

时间:2009-12-29 10:18:38

标签: javascript css static auto-versioning

在我的PHP应用程序中,我已经成功地自动恢复了我的静态内容(CSS,JS和图像),所以我的URL看起来像这样:

<link rel="stylesheet" href="http://example.com/include/css/global.1262063295.css" type="text/css" media="all" />
<img src="http://example.com/images/logo.1254284339.png" alt="" />

10位版本号只是修改单个文件的Unix时间戳。这是通过mod_rewrite和一些基本的PHP代码实现的(参见http://particletree.com/notebook/automatically-version-your-css-and-javascript-files/)。到目前为止一切都很好。


但是,这是我的问题。

在我的CSS文件中,我有许多背景图片的链接:

background: url("http://example.com/images/dice.gif") no-repeat right top;

同样在我的JS文件中,我也引用了不同的图像。

由于我希望所有访问我的静态内容(css,js,images)都包含版本号,有没有办法自动更新链接 INSIDE 一个.css或.js文件,所以上面的css看起来像这样:

background: url("http://example.com/images/dice.1234567893.gif") no-repeat right top;

如何自动完成?

谢谢, 康斯坦丁

1 个答案:

答案 0 :(得分:4)

您也可以通过PHP提供CSS和JS文件。例如,将global.css重命名为global.css.php。确保发送到正确的HTTP响应标头。

<?php // global.css.php
header('Content-Type:text/css; charset:utf-8');
include($_SERVER['DOCUMENT_ROOT'].'/path/to/autoVer.php'); ?>

#cssrule { background: url(<?php autoVer('/img/background.gif') ?>); }