2017-06-15 1 views
1

So machen wir eine Website mit Plugins, und ich frage mich, ob ich nur den Plugins-Ordner für alle js-Dateien durchsuchen und sie zu einem Bundle alle innerhalb der BundleConfig.cs Klasse hinzufügen kann.Kann ich Dokumente suchen und in ASP.NET MVC gefundene js-Dateien zu einem Bundle hinzufügen?

Ich habe darüber nachgedacht, alle Dateien zu benennen ich wie Plugin.pluginName.js bündeln wollen, und dann die Suche durch alle Dateien für alle Dateien suchen, „Plugin. Js *“, aber ich bin mir nicht sicher, wie passen genau das zu tun.

Wie würde man ein Plugins-Paket erstellen?

Antwort

2

Die Idee, alle Dateien zu benennen, die Sie nach einer Namenskonvention bündeln möchten, ist eine gute Konvention.

ein Skript-Bundle zum Bündel Sammlung hinzufügen

Sie auch den Plugin-Ordner für alle js Dateien suchen können, wenn Sie die Namenskonventionen

public static void RegisterBundles(BundleCollection bundles) { 
    bundles.Add(new ScriptBundle("~/bundles/plugins") 
      .IncludeDirectory("~/Plugin‌​s", "*.Plugin.js", true)); 
    //above recursively search subdirectories of directoryVirtualPath. 

    //...other bundles 
} 

Nach Ansicht Bezug verzichten wollen, dass die Bündel mit dem Namen registriert wie

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

Referenz Using Bundling and Minification with ASP.NET MVC

+0

Also mit ' "~/Plugins/* Plugin.js."' Scheint nur durch den unmittelbaren Inhalt der '~/Plugins suchen 'Ordner. Ich muss jeden direkten Unterordner durchsuchen, wie '" ~/Plugins/*/*. Plugin.js "', aber Sie können das nicht verwenden, da Platzhalter nur im letzten Abschnitt (wo der Dateiname ist) sein können). – clevergrant

+0

Die include-Methode verwendet params. Sie können system.io verwenden, um alle Plugin-Verzeichnisse zu erhalten und die Vorlagen für das Paket zu erstellen. – Nkosi

+0

Danke für die Referenz, ich fand die Lösung! Sie können die 'IncludeDirectory()' Methode anstelle der 'Include()' Methode wie folgt verwenden: 'bundles.Add (new ScriptBundle (" ~/bundles/plugins "). IncludeDirectory (" ~/Plugins "," * .Plugin.js ", wahr));' Danke! – clevergrant

-1

Was ist Bündelung?

Das Bündeln ist eine neue Funktion in ASP.NET 4.5, die es vereinfacht, mehrere Dateien in einer einzigen Datei zu kombinieren oder zu bündeln. Sie können CSS, JavaScript und andere Bundles erstellen. Weniger Dateien bedeuten weniger HTTP-Anfragen und können die Leistung der ersten Seite verbessern.

So aktivieren Sie die Bündelung?

Die Bündelung wird aktiviert oder deaktiviert, indem der Wert des Debug-Attributs im Kompilierungselement in der Datei Web.config festgelegt wird. In der folgenden XML-Datei wird debug auf "true" gesetzt, sodass Bündelung und Verkleinerung deaktiviert sind. XML

<system.web> 
    <compilation debug="true" /> 

</system.web> 

Bündelung zu aktivieren und minification, stellen Sie den Debug-Wert auf "false".

Sie können die Einstellung Web.config mit der EnableOptimizations-Eigenschaft der BundleTable-Klasse überschreiben. Der folgende Code ermöglicht das Bündeln und Verkleinern und überschreibt alle Einstellungen in der Datei Web.config.

Beispiel

public static void RegisterBundles(BundleCollection bundles) { 


    bundles.Add(new ScriptBundle("~/bundles/AnyName").Include(
      "~/Scripts/Plugins/*.js")); // this will all the files in the plugins folder with .js extension 
              //you can specify files separately if dont want to use wildcards 

     BundleTable.EnableOptimizations = true; 
} 

Wichtiger Hinweis: Der virtuelle Pfad in dem Verfahren festgelegt und das Suchmuster in der IncludeDirectory Methode kann man annehmen „*“ Platzhalter-Zeichen als Präfix oder Suffix im letzten Pfadsegment.

Offical doc: https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/bundling-and-minification#using-bundling-and-minification-with-aspnet-mvc

Dank

Karthik

Verwandte Themen