Статический контент по развитию и производственной среде - PullRequest
0 голосов
/ 01 июля 2011

Я использую Asp.Net MVC 2 для создания веб-приложения. Вопрос касается статического контента. В производстве статический контент находится в поддомене http://static.jobsora.com/content/css/., а в разработке он находится в расположении по умолчанию ../Content/css/ Пример:

Для производства:

<link rel="stylesheet" type="text/css" href="http://static.jobsora.com/Content/css/search-min.css" />

Для разработки:

<link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/css/search-min.css") %>" />

Я знаю, что изменение кодовой базы для производства вовсе не является подходом. Итак, я ищу лучший подход. Я думаю, что это можно обмануть по Абсолютному URL, но как? Понятия не имею!

Спасибо.

Ответы [ 2 ]

1 голос
/ 01 июля 2011

Создайте пользовательский помощник, подобный этому:

public static class HtmlHelpers
{
    public static MvcHtmlString Css(this HtmlHelper helper, string fileName)
    {
        string folder = ConfigurationManager.AppSettings["StaticContent"];
        fileName += (fileName.EndsWith(".css") == true) ? "" : ".css";
        return MvcHtmlString.Create(string.Format(@"<link rel=""stylesheet"" type=""text/css"" href=""{0}/{1}"" />", folder, helper.AttributeEncode(fileName)));
    }
}

Тогда в вашем View все, что вам нужно:

@Html.Css("search-min.css")

Тогда вы можете использовать преобразование web.config, чтобы установить значение для разработки и производства. Вы можете найти информацию здесь, http://msdn.microsoft.com/en-us/library/dd465326.aspx.

1 голос
/ 01 июля 2011

Рассмотрим программируемое добавление ссылок на страницу путем добавления элементов ссылки в заголовок. Это может быть сделано из кода, и вы можете обойти это таким образом, используя:

#if DEBUG

#else

#endif

Или какая-то другая конструкция.

НТН.

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