2010-10-03 4 views
13

Я пытаюсь развернуть наши изображения в cdn. В настоящее время css имеет относительные пути к изображениям на нашем сайте. Эти пути должны поддерживать местоположение изображения CDN. Есть ли у кого-нибудь совет, как я могу это сделать?Пути изображения в CSS для поддержки CDN

Или, если у кого есть хороший учебник по развертыванию в CDN.


Так я и достиг этого.

  1. Я SASS - http://sass-lang.com/
  2. У меня есть подмешать под названием cdn.scss с содержанием как $ image_path: "/ изображений /";
  3. Импорт этого микса в стиле sass @import «cdn.scss»
  4. Обновить пути изображения как таковые: background: url ($ image_path + "image.png");
  5. О развертывании изменить переменную $ image_path в mixin.scss, а затем повторно Sass

UPDATE

Мы используем Баш обновить файл

cat > preprocess/sass/_cdn.scss <<EOT 
\$image_path: "//CDN_URL/"; 

Пример кода в _cdn .scss

$image_path: "/public/images/"; 

Тогда он работает по-умолчанию локально , но при создании push мы запускаем скрипт bash для обновления с использованием местоположения cdn.

+0

С тех пор я сменил файл cdn.scss на _cdn.scss, чтобы он не выводил файл, а использовался только как mixin. – jhanifen

ответ

16

Возможно, проще всего разместить как ваши изображения, так и файл CSS на CDN. Пути изображений в вашем файле CSS относятся к самому CSS-файлу, поэтому вам вообще не придется менять свой CSS.

Если это не вариант, вы застряли, положив полностью настроенные URL-адреса в таблицу стилей. Теперь, если вы действительно этого хотели, вы могли бы генерировать свой CSS-файл динамически «на лету» и выполнять некоторую замену, чтобы на самом деле вам не пришлось жестко кодировать CDN на вашем листе.

+0

У нас не может быть путей изображения относительно. Мы решили использовать скомпилированный css SASS для таблиц стилей и сценарий, который мы запускаем при развертывании, чтобы изменить переменные SASS. Но в большинстве случаев ваш ответ правильный. – jhanifen

+1

@jhanifen Nice. Не могли бы вы подробнее описать, как этот скрипт изменяет переменную SASS? Это сценарий bash или что-то еще? – FloatingRock

Смежные вопросы