2017-11-03 1 views
0

Migration von einem MVC-Pre-Core-Projekt auf eine Core 2-Version Ich bin schockiert zu @Scripts & @Styles sind entfernt. Ich hatte mich darauf verlassen, dass ich @Scripts.Render("~/bundles/myApp") als Abkürzung verwenden konnte, die ein halbes Dutzend Dateien auf jeder Seite importierte, die sie benötigte. Jetzt muss ich alle diese Dateien auf jeder Seite buchstabieren, die sie benötigt?Benötigen Sie einen Ersatz für MVC @ Scripts.Render-Methode

Jede Möglichkeit, das Verhalten zu replizieren. Habe auf Gulp geschaut, scheint aber eher wie ein Prozessor für Bereitstellungen zu sein.

+0

re anon downvotes ... zeigen Sie mir die Passage in den Migrationsdokumenten, wo der aktualisierte Fluss dokumentiert ist, sowie die AA? – justSteve

Antwort

1

Die Methoden Scripts.Render und Styles.Render machen eigentlich nichts anderes, als ein einfaches Tag zum generierten HTML hinzuzufügen. Der Kern dessen, worüber Sie sprechen - eine Menge Skripte/Styles in einem Aufruf zusammengefasst - ist die von MVC gebotene Bündelung. In ASP.NET Core wurde die Methode zum Erstellen dieser Bundles einfach geändert. das ist alles.

Jetzt haben Sie bundleconfig.json statt BundleConfig.cs. Anstatt Scripts.Render aufzurufen, um das Bundle einzuschließen, verweisen Sie einfach direkt auf das gebündelte Skript. Ebenso mit deinem Stil.

Standardmäßig gibt es ein einziges Bündel für jedes site.jssite.css und dass „gebündelte“ (und minimierte) in site.min.js und site.min.css, respectively. Also, würden Sie gerade tun:

<environment names="Staging,Production"> 
    <script src="~/js/site.min.js" asp-append-version="true"></script> 
</environment> 

Die environment Tags einfach bestimmen, wann diese HTML in der Ausgabe enthalten sein. Hier ist das nur, wenn die Umgebung Inszenierung oder Produktion ist. Das Skript-Tag ist eine Hard-Referenz für das "Bundle". Dies ist Funktionalität entspricht dem, was man mit etwas erreicht hätte wie:

@Scripts.Render("~/bundles/site") 

, der selbst haben nur das folgende Skript-Tag gemacht würde:

<script src="~/bundles/site?v=abc123"></script> 

Mit anderen Worten: Sie brauchen nicht die Scripts.Render und Styles.Render Methoden, da sie eigentlich ziemlich nutzlos sind. Selbst in früheren Versionen von MVC hätten Sie sie vermeiden können und nur Tags erstellt, die direkt auf Ihre Bundles verweisen.

Weitere Informationen zur Funktionsweise von Bündelung und Minification in ASP.NET Core finden Sie unter documentation.

+0

Ich freue mich über Ihre ausführliche Antwort. Ich wünschte mir, ich hätte mindestens eine dieser Informationen in einem der ansonsten hervorragenden Migrationsdokumente gesehen. – justSteve

Verwandte Themen