.NET MVC4
Wie funktioniert es in einem Projekt @Styles.Render
?
Ich meine, in @Styles.Render("~/Content/css")
welcher Datei ruft es auf?
Ich habe keine Datei oder einen Ordner namens "css" in meinem Content
Ordner.
c#
asp.net-mvc
razor
asp.net-mvc-4
Ricardo Polo Jaramillo
quelle
quelle
Antworten:
Es ruft die Dateien auf, die in diesem bestimmten Bundle enthalten sind, das in der
BundleConfig
Klasse imApp_Start
Ordner deklariert ist .In diesem speziellen Fall ruft der
@Styles.Render("~/Content/css")
Aufruf von "~ / Content / site.css" auf.quelle
*.min.*
über*.*
Dateien.Achten Sie auf Groß- und Kleinschreibung. Wenn Sie eine Datei haben
und Sie leiten in Ihrer Bundle.config weiter
Das CSS wird nicht geladen.
quelle
Ein bisschen spät zur Party. Aber es scheint, als hätte niemand die
Bündelung und Minimierung von erwähnt
StyleBundle
.ruft an
Application_Start()
:was wiederum ruft
RegisterBundles()
effektiv kombiniert & minimiertbootstrap.css
&Site.css
in einer einzigen Datei,
Aber ..
nur wenn
debug
auffalse
in gesetzt istWeb.config
.Ansonsten
bootstrap.css
&Site.css
wird individuell serviert.Nicht gebündelt oder minimiert:
quelle
src="@url.content("~/Folderpath/*.css")"
sollte Stile rendernquelle
Wie in App_start.BundleConfig definiert, wird nur aufgerufen
Es passiert nichts, auch wenn Sie diesen Abschnitt entfernen.
quelle
Polo Ich würde Bundles in MVC aus mehreren Gründen nicht verwenden. In Ihrem Fall funktioniert dies nicht, da Sie eine benutzerdefinierte BundleConfig-Klasse in Ihrem Ordner Apps_Start einrichten müssen. Dies macht keinen Sinn, wenn Sie einfach einen Stil in den Kopf Ihres HTML-Codes einfügen können:
Sie können diese auch zu einer Layout.cshtml- oder Teilklasse hinzufügen, die aus all Ihren Ansichten aufgerufen und auf jeder Seite abgelegt wird. Wenn sich Ihre Stile ändern, können Sie den Namen und den Pfad leicht ändern, ohne sie neu kompilieren zu müssen.
Das Hinzufügen von fest codierten Links zu CSS in einer Klasse unterbricht den gesamten Zweck, die Benutzeroberfläche und das Design vom Anwendungsmodell zu trennen. Sie möchten auch keine fest codierten Stylesheet-Pfade, die in c # verwaltet werden, da Sie keine "Skins" oder separaten Stilmodelle mehr erstellen können, z. B. für verschiedene Geräte, Themen usw. wie folgt:
Mit diesem System und Razor können Sie jetzt den Skin-Pfad aus einer Datenbank- oder Benutzereinstellung heraus wechseln und das gesamte Design Ihrer Website ändern, indem Sie den Pfad einfach dynamisch ändern.
Der gesamte Zweck von CSS vor 15 Jahren bestand darin, sowohl benutzergesteuerte als auch anwendungsgesteuerte Stylesheet- "Skins" für Websites zu entwickeln, damit Sie das Erscheinungsbild der Benutzeroberfläche getrennt von der Anwendung ändern und den Inhalt unabhängig von der Datenstruktur neu verwenden können. .... zum Beispiel eine druckbare Version, eine mobile Version, eine Audioversion, eine rohe XML-Datei usw.
Indem wir jetzt zu diesem "altmodischen", fest codierten Pfadsystem zurückkehren, das C # -Klassen, starre Stile wie Bootstrap verwendet und die Themen von Websites mit Anwendungscode zusammenführt, sind wir wieder rückwärts zu der Art und Weise gegangen, wie Websites 1998 erstellt wurden.
quelle
minification
? : s / :(Ich habe alles Notwendige getan, um einem MVC 3-Web eine Bündelung hinzuzufügen (ich bin neu in der vorhandenen Lösung).
Styles.Render
hat bei mir nicht funktioniert. Endlich stellte ich fest, dass mir einfach ein Doppelpunkt fehlte. Auf einer Masterseite:<%: Styles.Render("~/Content/Css") %>
Ich bin immer noch verwirrt darüber, warum (auf derselben Seite) ohne Doppelpunkt<% Html.RenderPartial("LogOnUserControl"); %>
funktioniert .quelle