我在包中添加脚本时遇到错误。有没有办法解决这个问题
URL“/Scripts/bootstrap.js?1.0.0.1”无效。只要 允许应用程序相对URL(〜/ url)。
我们正在使用CDN,所以url的创建方式就像'bootstrap.js?1.0.0.1'。我找到的文章很少,但没有解决问题。
答案 0 :(得分:3)
您收到的错误是您的网址不是相对的。 URL“/Scripts/bootstrap.js?1.0.0.1”指的是实际网址http:////Scripts/bootstrap.js?1.0.0.1
- 这是一个静态网址
显然,这不是你想要实现的目标。您正试图获得http://yourdomain.com/Scripts/bootstrap.js?1.0.0.1
的引用。
要实现这一点,您需要确保通过在您想要引用的资源的前面写下字符~
来使其相对于您的域(因此是相对路径),因为这代表您的域。
因此写道:
~/Scripts/bootstrap.js?1.0.0.1
答案 1 :(得分:3)
您可以将MVC捆绑包与CDN一起使用。显然,与任何CDN一样,如果CDN不可用,您应该有一些后备计划(通常是本地副本)。 (我说从来没有真正打扰过,但仅仅因为我懒惰并不意味着你应该这样做!)
public static void RegisterBundles(BundleCollection bundles)
{
bundles.UseCdn = true; //enable CDN support
//add link to bootstrap on the CDN
var bootstrapCdnPath = "http://domain.to/bootstrap.cdn";
bundles.Add(new ScriptBundle("~/bundles/bootstrap",
bootstrapCdnPath));
}
请注意,即使在调试模式下,它也始终使用CDN。有关如何在调试时使用本地副本(例如,非缩小版)的详细信息,请参阅http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification(启动时或使用Google缓存)。