您不能混合捆绑包,但可以在 boundle 配置中包含外部源。
这是从这里挑选的一个例子,正如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.
}
我们需要启用 CDN,为此我们将 UseCdn 设置为 true,并在 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>
希望这可以帮助。