C# MVC4的样式绑定不使用min文件

C# MVC4的样式绑定不使用min文件,c#,asp.net-mvc,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/acss?v=mUdXE7_fXKjICzE_XteIB1Igy6TekX1QFh-BtY6fFUw1" rel="stylesheet

我有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/acss?v=mUdXE7_fXKjICzE_XteIB1Igy6TekX1QFh-BtY6fFUw1" rel="stylesheet"/>
在调试中运行应用程序时,所有内容都正确呈现:

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

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

bundles.Add(new StyleBundle("~/Content/acss").Include("~/Content/a.css", "~/Content/b.css"));
 <link href="/Content/acss?v=mUdXE7_fXKjICzE_XteIB1Igy6TekX1QFh-BtY6fFUw1" rel="stylesheet"/>

在我的内心深处,我正在建立:

/*缩小失败。返回未统一的内容。 (24708):运行时错误CSS1030:应为标识符,找到“”

所以我有两个问题:


  • 为什么它不能根据在线文档工作?所有信息都表明它选择了min文件(如果发布版本可用)
  • 如何使其根据文档工作
  • 您看过了吗,它引入了一个名为usePreMinifiedFiles的属性,该属性启用/禁用预缩小文件的使用

    您是否已将
    BundleTable.EnableOptimizations=true

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


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

    如果要在发布模式下保持相同的行为,请使用
    BundleTable.EnableOptimizations=falseGlobal.asax中的code>。这将关闭仅在调试模式下激活的绑定和缩小功能。然后,要使用您自己的缩小css/js文件,只需将捆绑包路径指向缩小版本


    根据文档,您还可以使用
    “~/Content/a{version}.css”
    ,在调试模式下使用非精简版本,在发布时使用精简版本。但是,我没有尝试过。

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

    如果我在调试模式下使用这些包,那么一切都会正常工作,所有未最小化的文件都会加载到我的应用程序中。但是,如果我设置
    BundleTable.EnableOptimizations=true然后我会出错,因为它无法最小化我的文件

    根据其规定:

    对于ASP.NET MVC 4,这意味着在调试配置中 jquery-1.7.1.js将被添加到包中。释放 配置,将添加jquery-1.7.1.min.js。捆绑 框架遵循以下几种常见约定:

    在“FileX.min.js”和“FileX.js”时选择要发布的“.min”文件 存在。选择非“.min”版本进行调试

    我希望它只是加载我已经最小化的文件,然后将它们打包。我认为这意味着,但文档中缺少的是,它还将再次最小化我已经最小化的文件,这些文件不起作用,并导致输出错误

    我发现其中提到:

    您只需创建不带标签的捆绑包,就可以跳过缩小 转换,即不创建脚本捆绑包,只创建普通捆绑包

    这就是我的问题的答案。通过将我的
    ScriptBundle
    StyleBundle
    都设置为只键入
    Bundle
    ,我现在可以获得正确的绑定,而无需最小化


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

    还没有,在我开始使用第三方工具之前,我想知道为什么绑定不能根据文档工作。你能试着使用名称较长的css,例如apple.css和banana.css吗。只是想知道是否有冲突的一些缩小变量a或b。当然,这是完全的猜测,可能很离谱。这只是一个例子。我的文件实际上被称为:myfile.common.css、myfile.layout.all.css、myfile.common.min.css、myfile.layout.all.min.cssah,这也许可以解释这一点。尝试重命名以排除“.”。这就是重命名为myfileCommmon.css和myfileCommon.min.css,同样对于layouta,dash也可以工作,这对您来说可能更好(myfile common等),但请首先尝试上面的内容。“为什么它不能根据在线文档工作?”“如何根据文档工作?”-您正在查看哪些文档?CSS1030:预期标识符,发现“.”看起来您的css中有一个错误,这可能导致缩小失败。@ZippyV缩小无法处理某些特定于浏览器的标记。这个问题与错误无关,但与捆绑为什么不使用已在文件夹中的min文件有关。@Pluc,我错过了这个问题,并在您的答案下面回答了。我没有忽略您的评论。我看你没有人有问题。我能看到的唯一一个与文件名中的点有关。也许我是盲人,但看不见任何问题。现在回答这个问题,[这里是]()我看的地方。有如下声明:捆绑框架遵循几个常见约定,例如:当“FileX.min.js”和“FileX.js”存在时,选择“.min”文件发布。选择非“.min”版本进行调试。请阅读您在提供的链接上发布的报价后的5行。这也是我在这里找到我的信息来发布这个回复,但是你没有做那个教程中提到的事情。我将我的文件更改为pattern:a-1.css,a-1.min.css,并将bundle替换为-{version}.css,行为更糟糕。因为它根本不呈现调试或发布。正在更改ScriptBundle和StyleBundle