ASP.Net MVC Script Bundle导致404

Dar*_*ght 9 asp.net asp.net-mvc bundling-and-minification

我搜索了SO - 发现了许多相同的问题,但没有一个答案有帮助.

我已经建立了一堆网站,而不是之前遇到过这个问题.

基本上,我的脚本包为我的javascript文件夹中的每个文件生成404.

我的结构(此刻,我已经改变了一堆!)看起来像这样:

在此输入图像描述

我这样做,所以我可以保证ASP.Net不会改变顺序 - 我可以确保某些脚本领先于其他脚本.这就是我一直这样做的方式,通常效果很好.

我的捆绑脚本 - 目前 - 是:

        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.FileSetOrderList.Clear();
            // stlyes
            StyleBundle cssBundle = new StyleBundle("~/bundles/css");
            cssBundle.IncludeDirectory("~/content/css", "*.css", true);
            bundles.Add(cssBundle);


            //scripts
            ScriptBundle jsBundle = new ScriptBundle("~/bundles/jscript");
            jsBundle.IncludeDirectory("~/content/javascript", "*.js", true);
            bundles.Add(jsBundle);

        }
Run Code Online (Sandbox Code Playgroud)

我尝试过一大堆虚拟路径.

我的CSS加载完美.我的Js - 我得到404的清单; 每个*/js文件一个.

有任何想法吗?

我的控制台看起来像这样 - 这也告诉我bundles.FileSetOrderList.Clear();实际上并没有清除它的列表,否则我会在角度之前有jquery(这是我的意图)

在此输入图像描述

UPDATE

如果我BundleTable.EnableOptimizations = true;在我的捆绑包中然后它全部捆绑,缩小和工作 - 虽然这很糟糕的开发调试 - 究竟是什么阻止它在调试模式下工作?!

bin*_*les 4

这篇文章似乎描述了同样的问题ASP.Net MVC 5 子目录捆绑问题,并且是捆绑框架版本 1.1.1 的一个已知问题。

如果您不想降级或升级到可以正常工作的版本,则始终可以选择将文件显式添加到您想要首先出现的捆绑包中。假设您的文件位于同一文件夹中。

/javascript/lib/ascript.js
/javascript/lib/ascript2.js
/javascript/lib/jquery.js
/javascript/lib/yscript.js
Run Code Online (Sandbox Code Playgroud)

您可以首先通过 Include() 明确您想要的文件,然后仍然通过 IncludeDirectory() 将其余文件集中在一起。

bundles.Add(new ScriptBundle("~/bundles/jscript").Include(
    "~/javascript/lib/jquery.js",
    .IncludeDirectory("~/javascript/lib", "*.js")
Run Code Online (Sandbox Code Playgroud)

如果首先显式添加了 jQuery.js,则捆绑足够智能,不会双重包含它。同样,如果您仍希望将各个子目录保留在子文件夹中,则可以对各个子目录进行多个 .IncludeDirectory 调用。