0

为什么捆绑包会在一台服务器上捆绑并缩小,而不是在另一台服务器上渲染?质量检查和生产都是相同的操作系统和版本的IIS,但他们给出不同的结果。在QA中,Styles.Render()Scripts.Render()生成捆绑的缩小输出。在制作过程中,他们通常不会(但有时会这样做)。为什么捆绑包不捆绑在一台服务器上?

我在我的布局中有这条线。

@Scripts.Render("~/siteJs") 

在开发中,我期待并得到这个输出。

<script src="/MyApp/Scripts/jquery.placeholder.js"></script> 
<script src="/MyApp/Scripts/Site.js"></script> 

在QA服务器上,我期待并得到它。

<script src="/MyApp/siteJs?v=7-G_q9YBnk..."></script> 

但在生产中,我通常(但不是总是)得到开发输出。

<script src="/MyApp/Scripts/jquery.placeholder.js"></script> 
<script src="/MyApp/Scripts/Site.js"></script> 

要尝试重现,我删除了QA的Web应用程序,并部署生产二进制文件和CONFIGS以QA,但仍QA给了我预期的输出。我已经在多个Web应用程序中看到了这一点,包括MVC3和MVC4。

我可以强制它可靠地缩小和捆绑通过更改我的布局线到这一点。

@Scripts.Render(BundleTable.Bundles.ResolveBundleUrl("~/siteJs")) 

这不幸的是,即使在开发过程中,它也总是捆绑和缩小。

编辑:

调试未在生产设置和QA web.config文件。

<compilation targetFramework="4.0"> 
+0

是否都构建在发布模式?调试模式不应该缩小你的Bundle。 – krillgar

回答

3

生产时,确保在web.config中将debug设置为false。在开发中将其设置为true应该会改变输出。

<compilation debug="false" ... /> 
+0

在Production/QA web.configs中没有设置调试属性集。 –

+1

您是否明确指定过它,以确保您排除了该问题?您的web.config可能会从另一个web.config或machine.config中获取设置。 –

+0

谢谢。我会尝试的。 –