Як у .NET MVC4
проекті @Styles.Render
працює?
Я маю на увазі, в @Styles.Render("~/Content/css")
який файл він дзвонить?
У мене в файлі немає файлу або папки під назвою "css" Content
.
Як у .NET MVC4
проекті @Styles.Render
працює?
Я маю на увазі, в @Styles.Render("~/Content/css")
який файл він дзвонить?
У мене в файлі немає файлу або папки під назвою "css" Content
.
Відповіді:
Він викликає файли, що входять до певного набору, який оголошується всередині BundleConfig
класу в App_Start
папці.
У цьому конкретному випадку заклик до @Styles.Render("~/Content/css")
виклику "~ / Content / site.css".
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
*.min.*
більш *.*
файли.
Слідкуйте за чутливістю до справ. Якщо у вас є файл
/Content/bootstrap.css
і ви переспрямовуєте в своєму Bundle.config на
.Include ("~ / Зміст / Bootstrap.css")
він не завантажить 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"));
}
RegisterBundles()
ефективно поєднує & мінімізує bootstrap.css
& 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
& Site.css
буде подано окремо.
Не в комплекті та не мінімізовано:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
Як визначено в App_start.BundleConfig, це просто дзвінок
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Нічого не станеться, навіть якщо ви вилучите цей розділ.
Поло Я б не використовував пачки в 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" />
За допомогою цієї системи та Razor тепер ви можете вимкнути Шлях шкіри з бази даних або налаштувань користувача та змінити весь дизайн вашого веб-сайту, просто динамічно змінивши шлях.
Вся мета CSS 15 років тому полягала у розробці як керованих користувачем, так і керованих додатками стилів "шкурок" для сайтів, щоб ви могли вимкнути зовнішній вигляд інтерфейсу користувача і відчути себе окремо від програми та змінити вміст незалежно від структури даних. .... наприклад, версія для друку, мобільна, аудіо-версія, необроблений XML тощо
Повернувшись назад до цієї «старомодної», жорстко кодованої системи шляхів із використанням класів C #, жорстких стилів, таких як Bootstrap, і об’єднавши теми сайтів з кодом програми, ми знову повернулися назад до того, як веб-сайти були побудовані в 1998 році.
minification
тоді? : s / :(
Я зробив усе необхідне, щоб додати групування до мережі MVC 3 (я новачок у існуючому рішенні). Styles.Render
не працювало для мене. Нарешті я виявив, що мені просто не вистачає товстої кишки. На головній сторінці: <%: Styles.Render("~/Content/Css") %>
Я все ще плутаюсь, чому (на одній сторінці) <% Html.RenderPartial("LogOnUserControl"); %>
працює без двокрапки.