Razor V3 — относительный путь не работает

#asp.net #vb.net #razor #relative-path

#asp.net #vb.net #razor #относительный путь

Вопрос:

Я использую Visual Studio 2013. Я создал веб-сайт (ASP.NET Web Site Razor v3), который отлично работает в браузере в режиме отладки (с Chrome). Однако — когда я развертываю веб-сайт (простая копия в IIS local), пути для таблиц стилей не работают, даже если они кажутся точными в источнике представления.

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

В любом случае … стили:

 <link rel="stylesheet" href="~/css/bootstrap.min.css" />
<link rel="stylesheet" href="../css/bootstrap-responsive.min.css" />
<link rel="stylesheet" href="../css/fullcalendar.css" />
  

Вы можете видеть, что я попробовал там несколько вариантов. Когда я смотрю на исходный код, я вижу следующее:

 <link rel="stylesheet" href="/MyMeds/css/bootstrap.min.css" />
<link rel="stylesheet" href="../css/bootstrap-responsive.min.css" />
<link rel="stylesheet" href="../css/fullcalendar.css" />
  

Мой веб-сайт IIS находится в папке /MyMeds/ . Так что это будет выглядеть правильно. Это почти похоже на то, что он переписывает его. Но я не вижу никаких правил перезаписи в файле web.config.

Спасибо.

Ответ №1:

Вам нужно использовать @Url.Content() . Вот так:

 <link href="@Url.Content("~/css/bootstrap.min.css")" rel="stylesheet" />
  

Комментарии:

1. Я пробовал это, но ему это не нравится. Не распознает @Url. Должен ли я импортировать класс или пространство имен?

2. @Andrew Это большая проблема. Вероятно, в вашем web.config нет всех необходимых директив. Есть ли у вас <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> в вашем web.config?

3. Нет — у меня есть только зависимые сборки, которые VS2013 вставил в проект при создании (т.Е. System.Web.Helpers, System.Web.WebPages). Я добавлю это сейчас и посмотрю, что произойдет

4. Я использовал Nuget для обновления. Он создал сборку. По-прежнему не распознает @Url {не объявлен… Он может быть недоступен из-за его уровня защиты}.