Настроить путь к изображениям в CSS для разработки и производственных сред - PullRequest
6 голосов
/ 15 июля 2010

В настоящее время я занимаюсь разработкой веб-сайта, и у меня есть локальное окружение, которое размещено на коробке XP с IIS 5.1. Я использую ASP MVC2 и .NET Framework 4.0.

Что я хочу знать, так это то, что если есть способ «настроить» в web.config (или любым другим способом) путь для всех моих изображений, чтобы при использовании в CSS CSS url () автоматически знал, где искать .

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

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

Так, например, на моем устройстве разработчика я хотел бы использовать "http://static.devserver/Images/...", но при развертывании я хотел бы, чтобы они использовали" http://static.productionserver/Images/..."

Очевидно, учитывая мои требования выше, размещение CSS на статическом поддомене не сработает в этом сценарии, или, может быть, я что-то пропустил?

Мне сказали использовать mod_rewrite и / или htaccess, но я не очень хорошо задокументирован по этому вопросу и, кажется, довольно сложен для того времени, когда у меня сейчас есть возможность реализовать этот проект.

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

Большое спасибо за чтение!

Ответы [ 4 ]

0 голосов
/ 20 июля 2012

Я понимаю, что этот вопрос давно остыл, но это первый результат моего поиска в Google, поэтому я подумал, что смогу попробовать его на случай, если он поможет другим.

Мое решение этой проблемы - переместить все правила в моих файлах CSS, которые содержат операторы url (), в мое представление.

Я использую Razor в MVC 3, поэтому я включил секцию стилей в файл базового макета и добавил туда все проблемные правила URL. Затем я могу использовать движок MVC, чтобы определить соответствующий URL во время выполнения. Вы можете изменить это, чтобы динамически просматривать и другой домен.

<style type="text/css">
    .back
    {
        background: url(@Url.Content("~/Content/icons/gray/back.png")) no-repeat;
    }
    .link
    {
        background: url(@Url.Content("~/Content/icons/gray/link.png")) no-repeat;
    }
</style>

Синтаксис для движка Razor, но для MVC 2 вы можете сделать то же самое в своей MasterPage.

0 голосов
/ 15 июля 2010

Относительный путь BarMonster - путь. URL ('/ subfolder / yourfile.ext'). Это лучший способ создавать изображения, и большинство ссылок на сайте можно преобразовывать между тестовой и реальной средой.

0 голосов
/ 15 июля 2010

Большое спасибо, ребята, за попытку помочь мне!Я наконец-то снова копался в переписывании URL, чтобы найти решение моей проблемы!Мне нужно было «перенаправить» вместо «переписывания» URL-адреса!

Теперь все работает как задумано!

Я использую переписчик URL в Intelligencia с этим простым правилом:

<rewriter>
        <redirect url="^.+\.(?:jpg|bmp|png|gif)$" to="http://myDEVserver$0" processing="stop" />
</rewriter>
0 голосов
/ 15 июля 2010

Нет простого решения сделать именно то, что вы хотите. Возможно, вам придется выводить файл .css как динамическую страницу, подставляя строку из конфигурации перед каждым URL (в CSS.

Тебе действительно нужен поддомен? Почему бы не использовать подпапку? url ('/ css / yourcss.css') универсален как для разработчиков, так и для производства.

(Ну, я знаю, что есть проблемы с дополнительным трафиком от куки, но все же, это проще сделать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...