Почему мой Theme.Master не может найти свой Site.css? - PullRequest
0 голосов
/ 17 апреля 2009
<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 ]

1 голос
/ 17 апреля 2009

Ваш комментарий к ответу Ника подразумевает, что вы пытаетесь поместить файл .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>
1 голос
/ 17 апреля 2009

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

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

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

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

0 голосов
/ 17 апреля 2009

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

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

0 голосов
/ 17 апреля 2009

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

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

или

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

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

...