W .NET MVC4projekcie robi, jak @Styles.Renderdziała?
Mam na myśli, w @Styles.Render("~/Content/css")którym pliku się woła?
Nie mam w folderze pliku ani folderu o nazwie „css” Content.
W .NET MVC4projekcie robi, jak @Styles.Renderdziała?
Mam na myśli, w @Styles.Render("~/Content/css")którym pliku się woła?
Nie mam w folderze pliku ani folderu o nazwie „css” Content.
Odpowiedzi:
Wywołuje pliki zawarte w tym konkretnym pakiecie, który jest zadeklarowany w BundleConfigklasie w App_Startfolderze.
W tym konkretnym przypadku Wywołanie @Styles.Render("~/Content/css")to „~ / Content / site.css”.
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
*.min.*ponad *.*plików.
Uważaj na rozróżnianie wielkości liter. Jeśli masz plik
/Content/bootstrap.css
i przekierowujesz w pliku Bundle.config na
.Include („~ / Content / Bootstrap.css”)
nie załaduje css.
Trochę późno na imprezę. Ale wydaje się, że nikt nie wspomniał
pakowanie w wiązki i minifikacji o StyleBundletak ..
@Styles.Render("~/Content/css")
wzywa Application_Start():
BundleConfig.RegisterBundles(BundleTable.Bundles);
który z kolei wzywa
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
RegisterBundles()skutecznie łączy i minimalizuje bootstrap.css oraz Site.css
w jeden plik,
<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
Ale ..
<system.web>
<compilation debug="false" targetFramework="4.6.1" />
</system.web>
tylko gdy debug jest ustawiony na falsein Web.config.
Inaczej bootstrap.cssi Site.cssbędą podawane indywidualnie.
Nie w pakiecie ani nie zminimalizowane:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
Jak zdefiniowano w App_start.BundleConfig, to tylko wywołanie
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Nic się nie dzieje, nawet jeśli usuniesz tę sekcję.
Polo Nie używałbym pakietów w MVC z wielu powodów. To nie działa w twoim przypadku, ponieważ musisz skonfigurować niestandardową klasę BundleConfig w folderze Apps_Start. Nie ma to sensu, gdy możesz po prostu dodać styl w nagłówku HTML:
<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />
Możesz także dodać je do Layout.cshtml lub częściowej klasy, która jest wywoływana ze wszystkich twoich widoków i upuszczana na każdej stronie. Jeśli zmienią się twoje style, możesz łatwo zmienić nazwę i ścieżkę bez konieczności ponownej kompilacji.
Dodanie zakodowanych linków do CSS w klasie psuje również cały cel oddzielenia interfejsu użytkownika i projektu od modelu aplikacji. Nie chcesz też zarządzać ścieżkami arkusza stylów zakodowanych na sztywno w języku C #, ponieważ nie możesz już budować „skór” lub oddzielnych modeli stylów dla, powiedzmy, różnych urządzeń, motywów itp.
<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />
Korzystając z tego systemu i Razor, możesz teraz wyłączyć Ścieżkę skórki z bazy danych lub ustawień użytkownika i zmienić cały projekt swojej witryny, zmieniając dynamicznie ścieżkę.
Celem CSS 15 lat temu było opracowanie „skórek” arkusza stylów kontrolowanych przez użytkownika i kontrolowanych przez aplikacje dla witryn, aby można było zmienić wygląd interfejsu użytkownika i poczuć się oddzielny od aplikacji oraz zmienić przeznaczenie treści niezależnie od struktury danych. .... na przykład wersja do wydruku, wersja mobilna, wersja audio, nieprzetworzony plik XML itp.
Wracając teraz do tego „staromodnego”, zakodowanego na stałe systemu ścieżek, wykorzystującego klasy C #, sztywne style, takie jak Bootstrap, i łącząc motywy witryn z kodem aplikacji, cofnęliśmy się do tego, jak strony internetowe zostały zbudowane w 1998 roku.
minificationtym? : s / :(
Zrobiłem wszystko, co konieczne, aby dodać pakietowanie do sieci MVC 3 (jestem nowy w istniejącym rozwiązaniu). Styles.Rendernie działało dla mnie. W końcu odkryłem, że po prostu brakuje mi jelita grubego. Na stronie wzorcowej: <%: Styles.Render("~/Content/Css") %> Nadal jestem zdezorientowany, dlaczego (na tej samej stronie) <% Html.RenderPartial("LogOnUserControl"); %>działa bez dwukropka.