我的问题是,将网站上传到在线服务器后,除图像,CSS和JavaScript之外,html页面完全正常显示。我确切地知道为什么会发生这种情况,并且与这个stackoverflow问题中的Ogglas答案有关:CSS, Images, JS not loading in IIS
基本上,我可以看到它在Google调试器中显示:
<link href="/Content/css?v=oJetwWdJWV96VzkmdyDS6ZG-GSKbNSyRhMkB7__C1dQ1" rel="stylesheet">
<script src="/bundles/modernizr?v=wBEWDufH_8Md-Pbioxomt90vm6tJN2Pyy9u9zHtWsPo1"></script>
但是在~
和/Content
之前应该有/bundles
,因此链接应该是
<link href="~/Content/css?v=oJetwWdJWV96VzkmdyDS6ZG-GSKbNSyRhMkB7__C1dQ1" rel="stylesheet">
和
<script src="~/bundles/modernizr?v=wBEWDufH_8Md-Pbioxomt90vm6tJN2Pyy9u9zHtWsPo1"></script>
由于~
符号表示应用程序的根目录。
问题是我不知道如何在ASP.NET MVC 5应用程序中解决此问题。
我的bundleConfig.cs文件已经看起来像这样:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at https://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/toastr.js",
"~/Scripts/respond.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/toastr.css",
"~/Content/site.css"));
}
}
所以我不知道应该在哪里进行此修改,以便在部署网站后,我的样式链接包括~
符号。
答案 0 :(得分:1)
在您的捆绑包配置中尝试
BundleTable.EnableOptimizations = false;