5

束ねるasp.net Webフォームでbundle.configするCDNを追加する方法:私はasp.netバンドリング/縮小を使用して、このようbundle.configにすべてを入れています

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

しかし、私は、ブートストラップを使用したいですCDNの.css:

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

これをどうやってbundle.configで行うことができますか?

答えて

4

現在、バンドル内のファイルの一部をCDNのような外部ソースからミックスして取り込むことはできません。バンドル全体をCDNにアップロードし、CDNのバンドルへの参照をレンダーするようにヘルパーを設定することはできますが、外部ソースからのファイルはインクルードできません。

実行時にCDNからファイルをフェッチできるVirtualPathProviderを実装することで回避できますが、自分で構築する必要があります。

0

バンドルを混在させることはできませんが、バウンドル設定に外部ソースを含めることはできます。

ここではランダム化されて指摘されたhereから選択された例を示します。

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

我々がtrueにUseCdnを設定し、我々はScriptBundleコンストラクタでURLを追加し、そうするために、CDNを有効にする必要があります。インクルードファイルはデバッグモードで使用されます。

@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> 

・ホープ、このことができます:記事として

は、私たちは私たちのCDNが失敗した場合にフォールバックメカニズムを持っている必要があります示唆しています。

関連する問題