我正在使用.NET 4版本的System.Web.Optimization来捆绑和修改CSS和JS文件。在我使用Visual Studio和Web开发服务器的开发环境中,这非常有效。使用debug =“false”,捆绑文件确实按预期捆绑。当我使用Release版本部署到IIS 7并使用完全相同的web.config(使用debug =“false”)时,Scripts.Render仍会呈现包含的JS文件列表而不是包文件。
<asp:PlaceHolder ID="GeneralScriptsAndCSS" runat="server">
<%: System.Web.Optimization.Scripts.Render("~/bundles/script/common") %>
</asp:PlaceHolder>
我尝试在浏览器中手动访问捆绑文件,看起来对我来说是正确的。唯一的问题是Scripts.Render(和Styles.Render)似乎不明白我想要启用优化。
有没有办法获取有关禁用捆绑的原因的日志信息?当我进一步测试时,似乎我的一个页面成功启用了捆绑,而其中一个没有。除非有办法理解为什么禁用特定页面的捆绑,否则这很难调试。
编辑:似乎为根目录中的所有页面启用了捆绑,但对子目录中的所有页面禁用了捆绑。
编辑2:看起来我通过将Nuget包升级到1.1.0(beta 1)的预发布版本来解决我的问题。
编辑3:问题又回来了。我已部署到其他服务器,并为根目录中的所有页面启用了捆绑,但对子目录中的所有页面禁用了捆绑。它在某些服务器上运行良好,但仅在某些服务器上的根页面上运行。
编辑4:发现问题。错误地,我在子文件夹中有额外的web.config文件,它们覆盖了调试标志(将其设置为true)。这就是为什么它在根文件夹中工作(使用debug false)并且在子文件夹中不起作用(使用debug true)。