ASP.Net MVC Script Bundle导致404

前端之家收集整理的这篇文章主要介绍了ASP.Net MVC Script Bundle导致404前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
搜索了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);

        }

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

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

有任何想法吗?

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

UPDATE

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

解决方法

这篇文章似乎描述了同样的问题 ASP.Net MVC 5 sub-directory bundling issues,并且是Bundling框架1.1.1版的已知问题.

如果您不想降级或升级到这样的版本,您始终可以选择明确地将文件添加到您想要的包中.假设您将文件放在同一个文件夹中.

/javascript/lib/ascript.js
/javascript/lib/ascript2.js
/javascript/lib/jquery.js
/javascript/lib/yscript.js

您可以通过Include()首先明确您想要的文件,然后通过IncludeDirectory()将其余文件整合在一起.

bundles.Add(new ScriptBundle("~/bundles/jscript").Include(
    "~/javascript/lib/jquery.js",.IncludeDirectory("~/javascript/lib","*.js")

捆绑是足够聪明的,如果首先明确添加了jQuery.js,它就不会加倍.同样,如果您仍希望将它们保留在子目录中,则可以在各个子目录上调用多个.IncludeDirectory.

猜你在找的asp.Net相关文章