Перезапись URL - это ваш друг.
Ссылки на изображения CSS всегда относятся к URL-адресу файла CSS. Давайте предположим, что наши CSS-файлы находятся внутри /css
, и что мы хотим, чтобы наши ресурсы изображений находились внутри /img
, и что нам надоело ставить ../img/
перед каждой ссылкой на изображение.
Все относительные ссылки на изображения CSS являются относительными по отношению к URL-адресу файла CSS, содержащего ссылку. Настройте правила перезаписи URL, чтобы переписывать URL-адреса, подобные этим
/css/foobar.png
/css/blue-theme/header-background.png
, поэтому они относительно желаемого местоположения (/img
):
/img/foobar.png
/img/blue-theme/header-background.png
Et вуаля ! Проблема решена.
Вы можете сделать это с помощью mod_rewrite в Apache. Это должно быть примерно так же просто, как добавить следующее к соответствующему .htaccess
.
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^css/(([^/]+/)*)([^/\.]+\.(gif|jpg|jpeg|png))$ img/$1$3
Сложнее в IIS, но понятие остается тем же.