Asp.Net MVC Bundle Minification在发布时不起作用

时间:2013-12-09 21:18:26

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

我在发布时请求缩小的资产时收到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认为这是一个staticFile。

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

感谢.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课程。