ASP.NET MVC - ссылки на таблицы стилей на главной странице

У меня есть главная страница, которая находится в /Views/Shared. Главная страница ссылается на таблицу стилей в папке /Content.

Все работает отлично, если я ссылаюсь на таблицу стилей с помощью "../../Content/style.css". Однако мое веб-приложение не находится в корневой папке в нашей производственной среде, поэтому относительный путь не работает.

Я попробовал "<% = ResolveUrl (" ~/content/style.css ")% > ", который работает в производственном сценарии, но затем дизайнер в Visual Studio жалуется, что мои классы ошибаются (и я не может просматривать страницу с помощью CSS на вкладке "Дизайн" ).

Есть ли решение, которое делает эту работу в обеих ситуациях? Я выполнил это в WebForms, написав серверный код, который reset тег ссылки. Я мог бы сделать это здесь, но я хотел бы избежать этого.

Ответ 1

Попробуйте эту технику - укажите свою таблицу стилей в обоих направлениях. Включите один с ссылкой на фиксированный путь, который Visual Studio будет использовать для поддержки времени разработки, но приложите его к комментариям на стороне сервера, чтобы он фактически не включался во время выполнения. Вторая ссылка - это "реальная" ссылка, используемая во время выполнения, а с помощью Url.Content() будет работать независимо от того, является ли ваше приложение подкаталогом или нет.

<% /* %> 
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> 
<% */ %>

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

Ответ 2

Лучше всего использовать Расширить URL-помощник. Это позволяет легко вызывать его из вашего представления, а если ваша структура или файлы меняются, вам не нужно делать массивный поиск/замену.

public static string Image(this UrlHelper helper, string fileName)  
{  
    return helper.Content("~/Content/Images/" + fileName));  
}  

public static string Stylesheet(this UrlHelper helper, string fileName)  
{  
    return helper.Content("~/Content/Stylesheets/" + fileName);  
}  

public static string Script(this UrlHelper helper, string fileName)  
{  
    return helper.Content("~/Content/Scripts/" + fileName);  
}

   <link href="<%= UrlHelper.Stylesheet("Main.css")%>" rel="stylesheet" 
         type="text/css" />  

Ответ 3

В папке "Представления", а затем перейдите в общую папку, чтобы понять, как ссылается на файл CSS в MVC.