Styles.Render в MVC4

В проекте .NET MVC4 как работает @Styles.Render?

Я имею в виду, в @Styles.Render("~/Content/css"), какой файл он вызывает?

В моей папке Content у меня нет файла или папки с именем "css".

Ответ 1

Он вызывает файлы, включенные в этот конкретный пакет, который объявлен внутри класса BundleConfig в папке App_Start.

В этом конкретном случае вызов @Styles.Render("~/Content/css") вызывает "~/Content/site.css".

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

Ответ 2

Следите за чувствительностью к регистру. Если у вас есть файл

/Content/bootstrap.css

и вы перенаправляете в свой Bundle.config на

.INCLUDE( "~/Содержание/Bootstrap.css" )

он не загрузит css.

Ответ 3

src="@url.content("~/Folderpath/*.css")" должен отображать стили

Ответ 4

Как определено в App_start.BundleConfig, он просто вызывает

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

Ничего не происходит, даже если вы удалите этот раздел.

Ответ 5

Polo Я не буду использовать Bundles в MVC по нескольким причинам. Это не работает в вашем случае, потому что вам нужно настроить собственный класс BundleConfig в папке Apps_Start. Это не имеет смысла, когда вы можете просто добавить стиль в голову своего html, например:

<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />

Вы также можете добавить их в Layout.cshtml или частичный класс, который вызывается из всех ваших представлений и попадает на каждую страницу. Если ваши стили изменяются, вы можете легко изменить имя и путь, не перекомпилируя.

Добавление жестко закодированных ссылок на CSS в разрыве классов с целью разделения пользовательского интерфейса и дизайна на модель приложения. Вы также не хотите, чтобы жестко закодированные пути в стиле листа управлялись в С#, потому что вы больше не можете создавать "скины" или отдельные модели стилей для разных устройств, тем и т.д. Так:

<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />

Используя эту систему и Razor, вы можете теперь отключить Path Skin из базы данных или пользовательских настроек и изменить весь дизайн своего сайта, просто изменяя путь динамически.

Вся цель CSS 15 лет назад состояла в том, чтобы разработать как пользовательские, так и управляемые приложениями таблицы стилей "скины" для сайтов, чтобы вы могли отключить внешний вид пользовательского интерфейса отдельно от приложения и пересортировать контент, не зависящий от структура данных... например, версия для печати, мобильная версия, аудио версия, raw xml и т.д.

Перейдя теперь к этой "старомодной", жестко закодированной системе путей с использованием классов С#, жестких стилей, таких как Bootstrap, и объединяя темы сайтов с кодом приложения, мы снова обратились к тому, как были созданы веб-сайты 1998.