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;在我的捆绑包中然后它全部捆绑,缩小和工作 - 虽然这很糟糕的开发调试 - 究竟是什么阻止它在调试模式下工作?!
这篇文章似乎描述了同样的问题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 调用。
| 归档时间: |
|
| 查看次数: |
4780 次 |
| 最近记录: |