Почему мой Theme.Master не может найти свой Site.css?

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

Это прекрасно работает от Theme.Master (Views/Themes/Blue/Theme.Master) на моей локальной машине, но не от хост-провайдера его последнего дома. Theme.Master может найти css, если css находится в папке Content, в любых подпапках папки Content, но не в том случае, если css находится в той же папке, что и Theme.Master.

Имею ли я смысл?

Очень разочарован

4 ответа

Ваш комментарий к ответу Ника подразумевает, что вы пытаетесь поместить файл.css в ту же папку, что и файл Theme.Master, который находится в дереве папки ~/Views/. Вы не можете сделать это. Дерево ~/Views/ настроено для блокировки всех HTTP-запросов от веб-браузера.

Вам нужно поместить ваш файл.css в доступное место. Дерево папок ~/Content/ является традиционным местом для размещения файла.css. Если вы переместите ваш файл.css и затем воспользуетесь этим, как предложил Ник, он будет работать:

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

Для записи, он не работает в папке Views из-за этих директив в файле web.config (обратите внимание, что файл web.config находится прямо в папке Views). Это просто к вашему сведению. Я не советую вам пытаться возиться с ними, потому что они есть, как правило, по уважительным причинам:

<!-- for IIS6 -->
<httpHandlers>
  <add path="*" verb="*"
      type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

<!-- for IIS7 -->
<handlers>
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
</handlers>

Вы должны использовать относительные ссылки на файлы. Попробуй это:

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

... и это должно решить проблему.

Редактировать Поскольку вы отметили, что это не работает, я посмотрел, откуда я нашел свое решение. Я получил это от Ланса Фишера в этом сообщении в блоге. В случае, если это не проясняется (поскольку речь идет о файлах сценариев Java), вы также можете посмотреть здесь на аналогичный вопрос, на который был дан ответ ранее. Надеюсь, это поможет!

Вы пытались использовать рутированный путь? Такие как:

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

или же

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

если ваша таблица стилей не в корне вашего сайта.

На размещенном провайдере приложение находится в корне сайта? или в подпапке? Соответствует ли ваша среда разработки настройке на сервере? Возможно, вам нужно убедиться, что вы работаете относительно корня приложения, ~/

По сути, это похоже на ту же проблему (со скриптами), которая обсуждалась здесь.

Другие вопросы по тегам