Как использовать относительные / абсолютные пути в URL CSS? - PullRequest
77 голосов
/ 28 апреля 2011

У меня есть сервер производства и разработки. Проблема в структуре каталогов.

Разработка:

Производство:

Как получить папку style.css в css, которая использует на обоих серверах один и тот же путь для свойства background: url? Есть ли уловка, которую я могу использовать с относительными путями?

Ответы [ 3 ]

115 голосов
/ 28 апреля 2011

URL-адрес относительно местоположения CSS-файла , поэтому это должно работать для вас:

url('../../images/image.jpg')

Относительный URL-адрес возвращается на две папки назад, а затем к *Папка 1006 * - она ​​должна работать в обоих случаях, если структура одинакова.

С http://www.w3.org/TR/REC-CSS1/#url:

Частичные URL-адреса интерпретируются относительно источника стилялист, не относящийся к документу

7 голосов
/ 09 августа 2016

Лично я бы исправил это в файле .htaccess.У вас должен быть доступ к этому.

Определите свой CSS-URL следующим образом:

url(/image_dir/image.png);

В своем файле .htacess укажите:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^image_dir/(.*) subdir/images/$1

или

RewriteRule ^image_dir/(.*) images/$1

в зависимости от сайта.

2 голосов
/ 28 апреля 2011

у меня была одна и та же проблема ... каждый раз, когда я хотел опубликовать свой css ... мне приходилось делать поиск / замену ... и относительный путь не работал бы для меня, потому что относительные пути отличались от dev до production .

Наконец-то надоело заниматься поиском / заменой, и я создал динамический CSS, (например, www.mysite.com/css.php), он такой же, но теперь я мог использовать свои константы php в CSS. что-то вроде

.icon{
  background-image:url('<?php echo BASE_IMAGE;?>icon.png');
}

и это не плохая идея сделать его динамичным, потому что теперь я могу сжимать его, используя YUI-компрессор, не теряя оригинальный формат на моем сервере dev.

Удачи!

...