为什么捆绑包不能捆绑在一台服务器上?

时间:2014-04-17 19:24:31

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 system.web.optimization

为什么捆绑包在一台服务器上捆绑和缩小,而在另一台服务器上却不捆绑? QA和Production都是相同的操作系统和IIS版本,但它们会产生不同的结果。在质量检查中,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应用程序,并将生产二进制文件和配置部署到QA,但仍然QA给了我预期的输出。我在多个Web应用程序中看到了这一点,包括MVC3和MVC4。

我可以通过将布局中的线条更改为此来强制缩小和捆绑。

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

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

修改

未在Production和QA web.config文件中设置调试。

<compilation targetFramework="4.0">

1 个答案:

答案 0 :(得分:3)

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

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