5

Używam asp.net Bundling/minifikacji i oddanie wszystkiego w bundle.config tak:Jak dodać CDN do bundle.config w ASP.NET webforms łączenie

<styleBundle path="~/css/css"> 
    <include path="~/css/bootstrap.css" /> 
    <include path="~/css/flexslider.css" /> 
    <include path="~/css/font-awesome.css" /> 
    <include path="~/css/Site.css" /> 
    <include path="~/css/orange.css" /> 
</styleBundle> 

ale chciałbym użyć bootstrap .css z CDN:

//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css 

Jak możemy to zrobić w pliku bundle.config?

Odpowiedz

4

Obecnie nie można mieszać i dopasowywać oraz pobierać niektórych plików z pakietu z zewnętrznego źródła, takiego jak cdn. Możesz przesłać cały pakiet do CDN i skonfigurować pomocników do renderowania odniesienia do pakietu w CDN, ale nie możesz dołączać plików ze źródeł zewnętrznych, pliki muszą znajdować się w miejscu, które może znaleźć twoja aplikacja.

Można obejść to, wdrażając VirtualPathProvider, który był w stanie pobrać pliki z CDN w czasie wykonywania, ale musiałbyś sam to zbudować.

0

Nie można mieszać pakietów, ale można dołączyć zewnętrzne źródło do konfiguracji granicznej.

Oto przykład wybrany z here, jak wskazano randomidea.

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. 
} 

Musimy włączyć CDN, aby to zrobić ustawiamy UseCdn true i dodać adres URL w konstruktorze ScriptBundle. Plik include zostanie użyty w trybie debugowania.

W artykule sugerują, musimy mieć mechanizm zastępczej w przypadku nasz CDN ustała

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

    <script type="text/javascript"> 
     if (typeof jQuery == 'undefined') { 
      var e = document.createElement('script'); 
      e.src = '@Url.Content("~/Scripts/jquery-1.7.1.js")'; 
      e.type = 'text/javascript'; 
      document.getElementsByTagName("head")[0].appendChild(e); 

     } 
    </script> 

nadzieję, że to pomaga.

Powiązane problemy