Что нужно помнить с приложением 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 /.
У вас есть два варианта:
- Используйте абсолютную ссылку:
href="/Content/Site.css"
это скажет браузеру всегда начинать с корня вашего сайта.
- Используйте корневую ссылку приложения:
href="~/Content/Site.css"
- которая, если ссылка находится в элементе управления, установленном на runat="server"
, должна быть исправлена во время выполнения, чтобы указывать на корень приложения.
Ответ на комментарий
Хорошо, но мы кое-что сейчас получаем:
Глядя на URL-адрес, который вы разместили, на своем компьютере для разработки вы запускаете этот сайт как приложение в корневом каталоге? Поэтому, когда вы запрашиваете сайт, вы собираетесь: http://localhost/pulse/?
Итак, что вы видите в своем браузере, если вы запрашиваете http://localhost/pulse/Content/Site.css?
Как выглядит коллекция маршрутов в вашем файле Global.asax.cs? Есть ли что-то, что мешает папке / Content /?