Автоверсионные ссылки на изображения ВНУТРИ 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') ?>); }