MVC 4应用程序在发布模式下没有采用缩小版本的js

时间:2015-08-27 19:12:39

标签: model-view-controller bundling-and-minification web-essentials

我正在使用WebEssentials 2013插件来缩小我的js文件,我假设每当我在发布模式下构建应用程序时,它都必须采用缩小的文件而不是原始文件。我的MVC 4应用程序没有发生这种情况。有没有人对这个问题有任何线索?

注意:我已在BundleConfig.cs中完成了以下更改:

#if !DEBUG
            BundleTable.EnableOptimizations = true;
#endif


Scripts 
    Projects 
        Project.js.bundle
               Project.min.js
                  Project.min.js.map

Project.js.bundle文件

<bundle>
  <settings>
    <minify>true</minify>
    <runOnBuild>true</runOnBuild>
    <outputDirectory />
  </settings>
  <files> 
    <file>/Scripts/Project/CreateProject.js</file>
    <file>/Scripts/Project/ViewProject.js</file>
    <file>/Scripts/Project/EditProject.js</file>
    <file>/Scripts/Project/CloseProject.js</file>
  </files>
</bundle>

我有四个视图,例如Create Project,View Project,Edit Project,Close Project。

我可以为每个视图使用捆绑包,还是只在每个视图中使用缩小的文件?哪个是最好的选择?我不知道如何在我看来包含一个包。你能给我提供语法吗?

2 个答案:

答案 0 :(得分:2)

当您使用WebEssentials 2013插件生成* .min.js时,您需要直接引用min文件 script src =&#34; myscripts.min.js&#34;

或者你可以用条件引用它们 喜欢

#if (DEBUG)
           script src="myscripts.js"
#elif (RELEASE)
          script src="myscripts.min.js"
#endif

答案 1 :(得分:2)

我认为你在这里混淆了两种不同的工具。

WebEssentials 2013可以在构建时自动缩小,但您需要实际引用缩小的文件才能使用它。

Example:
<script src="/js/yourjs.min.js"></script>

您的BundleTable.EnableOptimizations行正在使用System.Web.Optimization包。如果您对bundle使用脚本或样式引用而不是直接使用JS或CSS文件,您会注意到该行为可以按预期工作。

Example:
@Scripts.Render("/bundles/yourbundle")

有关详细信息,请参阅Bundling and Minification