[英]ASP.NET MVC multiple virtualpath Bundle with CDN
我試圖在ASP.NET MVC 4中添加一些支持CDN的捆綁包。目的是在同一數據中心托管的許多其他站點在本地共享內容
第一次嘗試是:
bundles.Add(new ScriptBundle("~/bundles/jquery", "http://mysite/Content/js/").Include(
"http://mycdnsite/Content/js/jquery.unobtrusive-ajax.min.js",
"http://mycdnsite/Content/js/jquery-migrate-1.2.1.js",
"http://mycdnsite/Content/js/jquery-{version}.js"));
不幸的是,這是不可能的,因為virtualPath必須是相對的(只允許應用程序相對URL(〜/ url))
然后我試過這個:
bundles.Add(new ScriptBundle("~/bundles/jquery", "http://mycdnsite/Content/js/").Include(
"~/jquery.unobtrusive-ajax.min.js",
"~/jquery-migrate-1.2.1.js",
"~/jquery-{version}.js"));
但它沒有奏效,即使啟用CDN:
BundleTable.EnableOptimizations = true;
bundles.UseCdn = true;
是否可以使用CDN創建多個內容包?
AFAIK您不能在一個捆綁包中提供多個CDN主機。 ScriptBundle
允許您為捆綁包指定備用URL,捆綁包可以包含多個本地文件。 你的語法是正確的。
bundles.UseCdn = true;
bundles.Add(new ScriptBundle("~/bundles/jquery",
@"//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.js"
).Include(
"~/Scripts/jquery-{version}.js"));
有幾種方法可以解決這個問題。
public static void RegisterBundles(BundleCollection bundles)
{
bundles.UseCdn = true; // enable CDN
// How to add link to jQuery on the CDN ?
var jqueryCdnPath = "http://mycdnsite/Content/js/jquery.unobtrusive-ajax.min.js";
bundles.Add(new ScriptBundle("~/bundles/jquery", jqueryCdnPath)
.Include("~/Scripts/jquery-{version}.js"));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.