Как мне прикрепить таблицу стилей? - PullRequest
1 голос
/ 23 ноября 2010

хорошо, для тех, кто столкнулся с подобными проблемами в будущем, это была проблема с разрешениями в iis. Мне пришлось установить разрешения для всего дерева для отображения таблицы стилей

Как мне прикрепить таблицу стилей?Я пробовал обычным способом:

<LINK REL=StyleSheet HREF="../../Content/Site.css" TYPE="text/css" MEDIA=screen>

с различными путями к файлам.Я также пытался с помощью скриптов vb url.content.По какой-то причине в браузере ничего не отображается.

Я получаю различные результаты:

  • таблица стилей не может быть найдена
  • иногда firebug показывает только HTML, написанный

Что еще может бытьпроблема?

Он прикреплен к основному файлу, поэтому я не знаю, что здесь не так.alt text

Ответы [ 3 ]

3 голосов
/ 23 ноября 2010

Что нужно помнить с приложением MVC, так это то, что часто ваши URL не совпадают с вашей фактической файловой системой.

Предполагается, что у вас настроена структура папок, аналогичная настройкам по умолчанию:

/Content/
/Content/Site.css
/Views/
/Views/Home/
/Views/Home/index.aspx
/Views/Shared/
/Views/Shared/site.master

Когда вы добавляете объявление стиля на свою главную страницу, ваш относительный путь имеет смысл:

../../Content/Site.css

Перейдите на две папки оттуда, где я сейчас нахожусь, а затем вниз на /content, чтобы найти Site.css.

Однако при просмотре страницы в браузере этот относительный путь больше не действителен:

http://www.example.com/Home/

Где две папки внизу? Что еще хуже, глубокая ссылка:

http://www.example.com/blogs/2010/11/23/My-posting

Это попытается найти папку с именем Content в папке / blogs / 2010 /.

У вас есть два варианта:

  1. Используйте абсолютную ссылку: href="/Content/Site.css" это скажет браузеру всегда начинать с корня вашего сайта.
  2. Используйте корневую ссылку приложения: href="~/Content/Site.css" - которая, если ссылка находится в элементе управления, установленном на runat="server", должна быть исправлена ​​во время выполнения, чтобы указывать на корень приложения.

Ответ на комментарий

Хорошо, но мы кое-что сейчас получаем:

Глядя на URL-адрес, который вы разместили, на своем компьютере для разработки вы запускаете этот сайт как приложение в корневом каталоге? Поэтому, когда вы запрашиваете сайт, вы собираетесь: http://localhost/pulse/?

Итак, что вы видите в своем браузере, если вы запрашиваете http://localhost/pulse/Content/Site.css?

Как выглядит коллекция маршрутов в вашем файле Global.asax.cs? Есть ли что-то, что мешает папке / Content /?

2 голосов
/ 23 ноября 2010

Это Asp.net MVC . Не используйте относительные пути к файлам , потому что пути в основном связаны с маршрутами.Вместо этого используйте помощник Url.Content().

<link rel="StyleSheet"
      href="<%= Url.Content("~/Content/Site.css") %>"
      type="text/css"
      media="screen" />
1 голос
/ 23 ноября 2010

"Вы также можете перетащить файл из Solution Explorer в элемент заголовка страницы в представлении« Исходный код »или перетащить файл в любое место на странице в представлении« Дизайн »."

http://msdn.microsoft.com/en-us/library/bb398932.aspx

ОБНОВЛЕНИЕ:

Проверьте это сообщение: http://forums.asp.net/p/1469427/3399574.aspx

Синтаксис, предоставленный Робертом, должен работать.

...