function getScreenWidth()
{
var de = document.body.parentNode;
var db = document.body;
if(window.opera)return db.clientWidth;
if (document.compatMode=='CSS1Compat') return de.clientWidth;
else return db.clientWidth;
}
Он вызывает файлы, включенные в этот конкретный пакет, который объявлен внутри класса BundleConfig
в папке App_Start
.
В этом конкретном случае вызов @Styles.Render("~/Content/css")
вызывает "~ / Content / site.css".
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Следите за чувствительностью к регистру. Если у вас есть файл
/Content/bootstrap.css
, и вы перенаправляете в свой Bundle.config на
.Include ( "~ / Content / Bootstrap.css")
не будет загружать CSS.
Как определено в App_start.BundleConfig, он просто вызывает
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Ничего не происходит, даже если вы удалите этот раздел.
StyleBundle
, поэтому ..
@Styles.Render("~/Content/css")
звонит в Application_Start()
:
BundleConfig.RegisterBundles(BundleTable.Bundles);
, что в свою очередь вызывает
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
< hr> RegisterBundles()
эффективно объединяет & amp; минимизирует bootstrap.css
и amp; Site.css
в один файл,
<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
Но ..
<system.web>
<compilation debug="false" targetFramework="4.6.1" />
</system.web>
только когда debug
установлено на false
в Web.config
.
В противном случае bootstrap.css
& amp; Site.css
будет обслуживаться индивидуально.
Не в комплекте и не минимизированы:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
src="@url.content("~/Folderpath/*.css")"
должны отображать стили
Поло. Я бы не использовал Bundles в MVC по нескольким причинам. Это не работает в вашем случае, потому что вы должны настроить собственный класс BundleConfig в вашей папке Apps_Start. Это не имеет смысла, когда вы можете просто добавить стиль в заголовок вашего html, например так:
<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />
Вы также можете добавить их в класс Layout.cshtml или частичный класс, который вызывается из всех ваших представлений и удаляется на каждую страницу. Если ваши стили меняются, вы можете легко изменить имя и путь без перекомпиляции.
Добавление жестко закодированных ссылок на CSS в класс нарушает целиком отделение интерфейса и дизайна от модели приложения. Вам также не нужны жестко заданные пути таблиц стилей, управляемые в c #, потому что вы больше не можете создавать «скины» или отдельные модели стилей, например, для различных устройств, тем и т. Д., Например:
<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />
Использование этого system и Razor вы можете теперь отключить путь к скину из базы данных или настройки пользователя и изменить весь дизайн вашего сайта, просто динамически изменяя путь.
Целью CSS 15 лет назад была разработка как «скинов» для сайтов, управляемых пользователями, так и приложений, чтобы вы могли отключить внешний вид интерфейса от приложения и переназначить контент независимо от структура данных ..... например, версия для печати, мобильная версия, аудио версия, сырой XML и т. д.
Вернувшись теперь к этой «старомодной», жестко запрограммированной системе путей, использующей классы C #, жесткие стили, такие как Bootstrap, и объединяя темы сайтов с кодом приложения, мы снова вернулись к тому, как создавались веб-сайты. 1998.
Я сделал все, что нужно, чтобы добавить пакет в сеть MVC 3 (я новичок в существующем решении). Styles.Render
не работал для меня. Я наконец обнаружил, что просто пропустил двоеточие. На главной странице: <%: Styles.Render("~/Content/Css") %>
Я все еще не понимаю, почему (на той же странице) <% Html.RenderPartial("LogOnUserControl"); %>
работает без двоеточия.