ASP.NET MVC - ссылки на таблицы стилей на главной странице - PullRequest
11 голосов
/ 20 января 2010

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

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

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

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

Ответы [ 3 ]

8 голосов
/ 20 января 2010

Попробуйте эту технику - включите свою таблицу стилей обоими способами. Включите один с фиксированной ссылкой на путь, который 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" />
6 голосов
/ 20 января 2010

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

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" />  
0 голосов
/ 27 декабря 2012

В папке Views, а затем переход в общую папку помогает понять, как CSS-файл упоминается в MVC.

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