对于MVC 4项目,我有一个要求,包括/bundle内容文件驻留在MVC项目之外,例如在CDN的某个地方。
如此:
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/Css/site.css"));
这行不通:
bundles.Add(newStyleBundle("~/Content/css").Include("D:/Media/Styles/Css/site.css"));
我得到的错误是:
URL 'D:/Media/Styles/Css/site.css'不合法。只有应用程序允许使用相对url (~/url)。参数名称:virtualPaths
简而言之,是否有可能将资产文件驻留在项目的内容文件夹之外,例如使用CDN时?如果有,最好的方法是什么?
只能使用相对路径和CDN。这些资源可以在Content文件夹之外,因此您可以将它们放在站点内的另一个文件夹中。
你也可以这样使用CDN:
public static void RegisterBundles(BundleCollection bundles)
{
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.
}