在我的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;
如何自动完成?
谢谢, 康斯坦丁
答案 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') ?>); }