Почему мой 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" />
если ваша таблица стилей не в корне вашего сайта.
На размещенном провайдере приложение находится в корне сайта? или в подпапке? Соответствует ли ваша среда разработки настройке на сервере? Возможно, вам нужно убедиться, что вы работаете относительно корня приложения, ~/
По сути, это похоже на ту же проблему (со скриптами), которая обсуждалась здесь.