【问题标题】:MVC Bundle Exclude Files On DebugMVC Bundle 在调试时排除文件
【发布时间】:2016-03-13 09:42:19
【问题描述】:

我有一个这样的包:

Bundles.Add(new Bundle("~/bundles/html", "~/Templates", new AngularHtmlCombine()).IncludeDirectory("~/Templates", "*.html", true);

该包在 debug=false 模式下运行良好,但在调试中它包含我在脚本标签中的所有 html 文件

我怎样才能告诉捆绑包在调试中不起作用?

【问题讨论】:

  • 你在 HTML 中使用什么代码来打包?

标签: html angularjs asp.net-mvc bundling-and-minification


【解决方案1】:

当 debug=true 时,所有文件都在脚本标签中单独呈现。因为你有 *.html 它分别包含脚本标签中的所有 html 文件。

我不确定在您的情况下捆绑 html 文件的目的是什么,因为它主要用于 css 和 js。

在 bundle.config BundleTable.EnableOptimizations = true; 中添加这一行将启用捆绑,而不管 web.config 中的 debug 值如何,并将所有 html 页面合并到一个文件 (~/bundles/html) 中,并且不会在脚本标签中呈现

【讨论】:

  • 是的,但它与使用 debug=false 相同。它总是缩小我所有的文件
  • 当 debug = true 时很抱歉。编辑了我的答案。捆绑在调试模式下不起作用,因为您认为您将调试控制流的 JavaScript。
  • 好吧,现在信息是正确的,但如果我们处于调试模式,我只想忽略捆绑包。捆绑包的目的是创建一个包含 $templateCache 中所有模板的单个 js 文件。我正在使用自定义捆绑包:dotnetexpertguide.com/2012/10/…。我希望只是改变一些东西就可以解决问题
  • 如果你不希望所有这些 html 页面在脚本标签中呈现,或者在你的 cshtml 中呈现之前进行检查 stackoverflow.com/questions/23865039/…
【解决方案2】:

打包的目的是获取我所有的模板文件,并使用 Angular 的 $templateCache 将它们放入单个 javascript 文件中。

在发布模式下效果很好,但在调试中它只是将我所有的 .html 文件添加为脚本。

BundleConfig.cs 中的以下行通过忽略捆绑包中的 HTML 文件解决了我的问题:

bundles.IgnoreList.Ignore("*.html");

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2017-08-04
    • 2018-11-18
    • 1970-01-01
    • 2012-12-09
    • 2017-06-25
    相关资源
    最近更新 更多