Автоверсионные ссылки на изображения ВНУТРИ CSS и Javascript файлов?

Внутри моего 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-значные номера версий - это просто временные метки модификации отдельных файлов. Это достигается с помощью 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) был включен номер версии, есть ли способ автоматически обновлять ссылки ВНУТРИ файла.css или.js, чтобы приведенный выше css выглядел так:

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

Как это можно сделать автоматически?

Спасибо Константин

1 ответ

Вы также можете обслуживать свои CSS и JS файлы через PHP. Например, переименовать 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') ?>); }
Другие вопросы по тегам