Влияет ли MembershipProviders в ASP.net MVC на ссылки таблиц стилей?

StackOverflow https://stackoverflow.com/questions/167074

Вопрос

Я изменил MembershipProvider на своем веб-сайте ASP.net MVC, и теперь на таблицу стилей для страницы входа неправильно ссылаются. Ниже приведена копия тега формы в моем файле web.config, если это может быть причиной. Он выглядит идентично тому, который был сгенерирован новым проектом, за исключением атрибута name и timeout.

<authentication mode="Forms">
      <forms loginUrl="~/Account/Login" name=".ADAuthCookie" timeout="10" />
</authentication>

Когда я сейчас захожу на страницу, тег ссылки для CSS выглядит следующим образом:

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

Когда он должен выглядеть следующим образом:

<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
Это было полезно?

Решение 2

Спасибо, Ян Оксли. Проблема не была решена с ResolveClientUrl, хотя.

Это было связано с файлом web.config. У меня был код, который выглядел так:

<authorization>
  <deny users="?" />
  <allow users="*" />
</authorization>

Я добавил элемент местоположения ниже основного и сказал, что любой может просматривать этот контент, и теперь он работает. Оказывается, что такие файлы, как файл CSS, не были доступны для просмотра до авторизации. Это сейчас исправлено.

Это то, что я добавил:

<location path="Content">
   <system.web>
      <authorization>
         <allow users="*" />
      </authorization>
   </system.web>
</location>

Другие советы

Я сам еще не использовал ASP.NET MVC, но вы можете попробовать использовать ResolveClientUrl при написании ссылки для вашего CSS:

<link href="<%= ResolveClientUrl("../../content/Site.css") %> rel="stylesheet" type="text/css" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top