部署后将不会显示ASP.NET MVC 5网站中的CSS和Javascript以及图像

时间:2018-07-12 12:40:47

标签: javascript html css asp.net asp.net-mvc-5

我的问题是,将网站上传到在线服务器后,除图像,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"));
    }
}

所以我不知道应该在哪里进行此修改,以便在部署网站后,我的样式链接包括~符号。

1 个答案:

答案 0 :(得分:1)

在您的捆绑包配置中尝试

 BundleTable.EnableOptimizations = false;