CSS и отсутствие констант / переменных проблема? - PullRequest
2 голосов
/ 09 октября 2008

Учитывая таблицу стилей с полной ссылкой на ресурс изображения на другом сервере, есть ли хороший способ обрабатывать рекламные акции в разных средах, где требуется другой базовый URL-адрес?

background-image: url (EvironmentSpecificURL / resourceName.foo);

EnvironmentSpecificURL будет различаться в зависимости от среды, и я не хочу, чтобы этот файл изменялся по мере его разработки, разработки, подготовки, производства и т. Д.

У меня есть идеи, но мне интересно, как другие справились с этим - я опубликую одну из моих идей.

Позвольте мне подчеркнуть (основываясь на другом ответе), что ресурс изображения не существует на том же сервере, и это URL, который изменится. Так что относительные пути не работают в этой ситуации.

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

любая помощь!

Ответы [ 8 ]

3 голосов
/ 09 октября 2008

Ресурсы, на которые вы ссылаетесь, действительно должны быть на относительном уровне к вашему CSS-файлу, так что это всего лишь ".. \ resourceName.foo" от работы.

Конечно, вы можете также изучить инструменты сборки, которые автоматически генерируют определенные области вашего сайта, поэтому все свойства, такие как файл css, файлы .properties и т. Д., Генерируются динамически через ссылку инструмента сборки ANT или MSBuild

2 голосов
/ 09 октября 2008

В таблицах стилей CSS базовый URL-адрес принадлежит URL-адресу таблицы стилей, а не документа, в который она включена. Сделайте URL-адреса в таблице стилей относительными и найдите таблицу стилей соответствующим образом.

1 голос
/ 09 октября 2008

Вы можете создать настраиваемый препроцессор CSS, который заменяет определения URL-адресами и кэширует результат.

0 голосов
/ 01 ноября 2009

Вы можете сделать что-то с нашим .Less CSS-препроцессором , чтобы поменять переменные во время выполнения.

Тем не менее, как вы развертываете? Если вы использовали инструменты CI и автоматически создавали сценарии для своих развертываний, то вы могли бы включить шаг после сборки, чтобы найти замену этому базовому пути.

0 голосов
/ 09 октября 2008

Возможно, вам удастся добиться того, чего вы хотите, используя тег и задав базовый URL-адрес, который будет использоваться для решения всех других относительных запросов.

0 голосов
/ 09 октября 2008

В зависимости от вашей среды сборки, возможно, существует механизм для обработки файлов ресурсов и замены переменных на нужные значения.

Я использую Maven для своего Java developmnt, и эта функциональность встроена.

0 голосов
/ 09 октября 2008

Либо будьте единообразны в разных средах (я бы всегда предпочел такой подход), либо генерируйте CSS динамически.

0 голосов
/ 09 октября 2008

Моя идея:

Разработайте локальный обработчик / etc в веб-приложении, чтобы получить изображение и обработать изменение базового URL в файлах конфигурации:

background-image: url (LocalHandler.ashx (ASPX) /resourceName.foo);

Где localHandler вызывает ресурс назначения, а затем возвращает ресурс в зависимости от типа контента.

...