C# MVC4的样式绑定不使用min文件
我有4个文件: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
- 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:应为标识符,找到“”
所以我有两个问题:
BundleTable.EnableOptimizations=true代码>
从
注意:除非EnableOptimizations为true或
Web.config文件中的编译元素设置为false,files
不会被捆绑或缩小。此外,的.min版本
将不使用文件,将选择完整调试版本。
EnableOptimizations覆盖编译中的调试属性
Web.config文件中的元素
您的实际问题无法回答,因为它已经作为文档状态(这就是为什么我问您正在查看哪些文档,但您选择忽略我的评论)
如果要在发布模式下保持相同的行为,请使用BundleTable.EnableOptimizations=false在您的Global.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