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.