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

Mar*_*cin 11 c# asp.net-mvc

我有4个文件:

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

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

bundles.Add(new StyleBundle("~/Content/acss").Include("~/Content/a.css", "~/Content/b.css"));
Run Code Online (Sandbox Code Playgroud)

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

 <link href="/Content/a.css" rel="stylesheet"/>
 <link href="/Content/b.css" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

但是当在发行版中运行时,我会以下列方式呈现它:

 <link href="/Content/acss?v=mUdXE7_fXKjICzE_XteIB1Igy6TekX1QFh-BtY6fFUw1" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

在我的建立里面:

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

所以我有两个问题:

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

Mat*_*att 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文件.

  • 你先生,是一位学者和一位绅士.接得好. (4认同)
  • 将 ScriptBundle 和 StyleBundle 更改为常规 Bundle 对我来说是这样。但是,为什么微软在加载 jquery-{version}.js 和 jquery-{version}-min.js 时不在默认 mvc 项目中默认使用 Bundle 呢? (3认同)