10

Ich bin auf der Suche in die ASP.NET MVC4 System.Web.Optimization Bündelung und frage mich, wie Sie von einem CDN und andere lokale an einen Server einige CSS-Dateien zu servieren gehen würde?ASP.NET MVC4 Bündelung CSS Einige auf CDN einige lokale Server?

Ist das möglich?

Es sieht aus wie die Bundles.UseCdn = True ist auf der Sammel-Ebene und nicht eine Einstellung für ein einzelnes Bündel.

Jede Anleitung wäre willkommen.

Antwort

9

Richtig, jetzt die einzige CDN-Unterstützung auf einem pro Bündel Ebene ist, können Sie nicht ein Bündel haben mit einigen einzelnen Assets aus dem CDN kommen und einige lokal in diesem Moment. Grundsätzlich ist es entweder oder: Sie können veranlassen, dass das Paket das cdn mit Fallback zum Bündel des lokalen Servers verwendet, oder das gesamte Paket muss auf dem CDN sein.

UPDATE: Aber um zu klären, können Sie einige Bündel auf CDN und einige Bündel lokal haben. Dies wird vom CdnPath auf der Bundle-Instanz gesteuert. Wenn für ein einzelnes Paket kein CdnPath festgelegt ist, wird es immer lokal bereitgestellt.

18

Die ASP.NET site has some information dazu:

Der folgende Code ersetzt die lokalen jQuery mit einem CDN jQuery Bündeln bündeln.

public static void RegisterBundles(BundleCollection bundles) 
{ 
    //bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
    //   "~/Scripts/jquery-{version}.js")); 

    bundles.UseCdn = true; //enable CDN support 

    //add link to jquery on the CDN 
    var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"; 

    bundles.Add(new ScriptBundle("~/bundles/jquery", 
       jqueryCdnPath).Include(
       "~/Scripts/jquery-{version}.js")); 

    // Code removed for clarity. 
} 

In dem obigen Code wird jQuery vom CDN angefordert werden, während in Release-Modus und die Debug-Version von jQuery lokal im Debug-Modus geholt werden. Bei Verwendung eines CDN sollten Sie einen Fallback-Mechanismus für den Fall, dass die CDN-Anfrage fehlschlägt, haben. Das folgende Markup-Fragment aus dem -Ende der Layoutdatei zeigt, dass das Skript zur Anforderung von jQuery hinzugefügt wurde, falls der CDN-Code fehlschlägt.

Persönlich finde ich mich nicht Debugging-Code von jQuery, Knockout oder einer anderen Bibliothek. Ich verweise immer direkt auf die CDN-Ressource in meinem Layout. Alle Skripte, die ich selbst rollen muss, bündle ich dann mit dem MVC-Framework.

Meine Websites in der Regel wie folgt aussehen:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 
@Scripts.Render("~/content/js/siteName") 
Verwandte Themen