MVC4的样式捆绑不使用min文件

时间:2012-10-19 09:50:53

标签: c# asp.net-mvc

我有4个文件:

  • a.css
  • a.min.css
  • b.css
  • b.min.css

以下列方式将它们添加到包中:

bundles.Add(new StyleBundle("~/Content/acss").Include("~/Content/a.css", "~/Content/b.css"));

在调试中运行应用程序时,所有内容都正确呈现:

 <link href="/Content/a.css" rel="stylesheet"/>
 <link href="/Content/b.css" rel="stylesheet"/>

然而,当在发行版中运行时,我按以下方式呈现它:

 <link href="/Content/acss?v=mUdXE7_fXKjICzE_XteIB1Igy6TekX1QFh-BtY6fFUw1" rel="stylesheet"/>

在我的创立内部:

  

/ *缩小失败。返回未经授权的内容。   (24,708):运行时错误CSS1030:预期的标识符,找到'。'

所以我有两个问题:

  1. 为什么它不按照在线文档工作?所有信息都表明如果可用于发布版本,它会选择min文件吗?
  2. 如何根据文档使其工作?

3 个答案:

答案 0 :(得分:35)

我遇到了完全相同的问题,我的解决方案包含css / js文件以及我们使用Web Essentials最小化的.min文件。

如果我在调试模式下使用了捆绑包,一切都会正常工作,并且所有单独的非最小化文件都将加载到我的应用程序中。但是,如果我设置BundleTable.EnableOptimizations = true;,那么我会收到错误,因为它最大限度地减少了我的文件。

基于http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification,其中声明:

  

对于ASP.NET MVC 4,这意味着使用调试配置文件   jquery-1.7.1.js将被添加到包中。在一个版本中   配置,将添加jquery-1.7.1.min.js。捆绑   框架遵循几个常见的约定,例如:

     

当“FileX.min.js”和“FileX.js”选择“.min”文件以供发布   存在。选择非“.min”版本进行调试。

我希望它只是加载我已经最小化的文件并将它们捆绑起来。我认为隐含的,但文档中缺少的是,它还将再次最小化我已经最小化的文件,这些文件无效并导致输出错误。

我发现http://aspnetoptimization.codeplex.com/workitem/56提及:

  

只需创建没有的捆绑包,就可以跳过缩小   转换,即不创建ScriptBundles,只是普通的Bundles。

结果证明这是我的问题的答案。通过将我的ScriptBundleStyleBundle都设置为只输入Bundle,我现在可以在没有最小化的情况下获得正确的捆绑。

在调试中,我的所有常规css / jss文件都是单独加载的。当我将其设置为非调试时,所有内容都捆绑在一起,它会自动选择所有.min文件。

答案 1 :(得分:1)

您的实际问题无法回答,因为它已经作为文档状态(这就是为什么我询问您正在查看哪些文档,但您选择忽略我的评论)。

如果您想在发布模式下保持相同的行为,请在BundleTable.EnableOptimizations = false;中使用Global.asax。这将关闭仅在调试模式下处于活动状态的捆绑和缩小。然后使用您自己的缩小的css / js文件,只需将您的包路径指向缩小版本。

根据文档,您还可以使用"~/Content/a{version}.css",它将在调试模式下使用非缩小版本,并使用缩小版本进行发布。但是,我没有尝试过。

答案 2 :(得分:0)

你看了Bundle Transformer1.6.5 version引入了一个名为 usePreMinifiedFiles 的属性,它启用/禁用了预先缩小文件的使用。

您是否设置了BundleTable.EnableOptimizations = true;

来自documentation

  

注意:除非EnableOptimizations为true或者调试属性为   编译Web.config文件中的元素设置为false,文件   不会被捆绑或缩小。另外,.min版本   不会使用文件,将选择完整的调试版本。   EnableOptimizations会覆盖编译中的debug属性   Web.config文件中的元素