【问题标题】:Asp.Net MVC Bundle Minification not working in releaseAsp.Net MVC Bundle Minification 在发行版中不起作用
【发布时间】:2013-12-09 21:18:25
【问题描述】:

在发布中请求缩小资产时,我收到 MapRequestHandler 错误。谁应该在发布时处理此请求?调试渲染工作正常并提供正确的文件。

我的捆绑地图:

Key: "~/Plugins/Pingo.Demo.BootstrapPrimary.1.0.0.3/Content/css"
item(s): "~/Plugins/Pingo.Demo.BootstrapPrimary.1.0.0.3/Content/bootstrap.css"
     ,"~/Plugins/Pingo.Demo.BootstrapPrimary.1.0.0.3/Content/site.css"

调试渲染:

<link href="/Plugins/Pingo.Demo.BootstrapPrimary.1.0.0.3/Content/bootstrap.css" rel="stylesheet"/>
<link href="/Plugins/Pingo.Demo.BootstrapPrimary.1.0.0.3/Content/site.css" rel="stylesheet"/>

发布渲染:

<link href="/plugins/Pingo.Demo.BootstrapPrimary.1.0.0.3/Content/css?v=DPgH9yYiO33UIbEOm8f4duzFsUqfKWua2il4TOVUrtQ1" rel="stylesheet"/>

发布版本导致 MapRequestHandler 404,其中 ASP.Net 认为这是一个静态文件。

有什么想法吗? 谢谢

【问题讨论】:

    标签: asp.net-mvc-4 bundling-and-minification


    【解决方案1】:

    感谢 .NET Reflector 对 System.Web.Optimization 进行反编译。

    System.Web.Optimization 有一个 PreStartInitMethod,只有在我的主应用程序引用了 System.Web.Optimization 时才会调用它。就我而言,我有自己的 PreStartInitMethod。在我的版本中,我在一堆插件程序集上调用 BuildManager.AddReferencedAssembly(assembly)。 System.Web.Optimization 就是这些程序集之一。 System.Web.Optimization 中的 PreStartInitMethod 还不够早(通过直接引用),因此它从未被调用过。

    我必须找到我加载的所有程序集的所有 PreStartInitMethods,然后从我的 PreStartInitMethod() 中调用这些方法。

    让我大开眼界的是,有很多我不知道的程序集有 PreStartInitMethods,所以这确实是处理 .NET 时的插件 101 课。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      相关资源
      最近更新 更多