我遇到ASP.NET MVC 4的捆绑和缩小功能的问题基本上我有以下捆绑设置:
bundles.Add(new StyleBundle("~/backendcss").Include(
"~/backendContent/bootstrap/css/bootstrap.min.css",
"~/backendContent/assets/jui/css/jquery-ui.css",
"~/backendContent/assets/jui/jquery-ui.custom.css",
"~/backendContent/plugins/uniform/css/uniform.default.css",
"~/backendContent/plugins/fullcalendar/fullcalendar.css",
"~/backendContent/plugins/fullcalendar/fullcalendar.print.css",
"~/backendContent/assets/css/fonts/icomoon/style.css",
"~/backendContent/assets/css/main-style.css",
"~/backendContent/plugins/pnotify/jquery.pnotify.css",
"~/backendContent/plugins/msgbox/jquery.msgbox.css",
"~/backendContent/IntroJS/css/introjs.css"));
当他们被放置在页面上时,他们会这样出现:
<link href="/backendContent/assets/jui/css/jquery-ui.css" rel="stylesheet"/>
<link href="/backendContent/assets/jui/jquery-ui.custom.css" rel="stylesheet"/>
<link href="/backendContent/plugins/uniform/css/uniform.default.css" rel="stylesheet"/>
<link href="/backendContent/plugins/fullcalendar/fullcalendar.css" rel="stylesheet"/>
<link href="/backendContent/plugins/fullcalendar/fullcalendar.print.css" rel="stylesheet"/>
<link href="/backendContent/assets/css/fonts/icomoon/style.css" rel="stylesheet"/>
<link href="/backendContent/assets/css/main-style.css" rel="stylesheet"/>
<link href="/backendContent/plugins/pnotify/jquery.pnotify.css" rel="stylesheet"/>
<link href="/backendContent/plugins/msgbox/jquery.msgbox.css" rel="stylesheet"/>
<link href="/backendContent/IntroJS/css/introjs.css" rel="stylesheet"/>
第一个问题是Tilda ~
没有出现在链接的开头,我认为这是问题之一(网站无法正确呈现)现在所有上述css样式表都在解析但是有很多进口和相对网址(图片),我认为那些搞砸了(没有捆绑,如果我只是指向~/backendContent/....
一切正常工作
第二个问题是当我设置BundleTable.EnableOptimizations = true;
时会出现更多问题并深入挖掘我会得到一个巨大的列表
(4368,1):运行时错误CSS1019:意外的令牌,发现'@import'
(4368,9):运行时错误CSS1019:意外的令牌,找到'url(“layout.css”)'
我不知道这是否重要,但@Styles.Render("~/backendcss")
生成的缩小和渲染样式链接是:
<link href="/backendcss?v=eMX6YcVB78xPWZV9Dw6seHqsT742J8_M1irfUC0IdaQ1" rel="stylesheet"/>
任何想法?对不起,这是我第一次使用这个功能,并且这个网站有这么多的css和js,它可以节省大量的带宽并加快整个网站的速度。再加上它很酷(即如果我可以让它工作)!!!
答案 0 :(得分:1)
不应该呈现~
。这是asp.net中的一个特殊字符,意思是the root of the application
我不确定你为什么会遇到实际缩小的问题,但如果没有消息来源就很难诊断出来。
优化时的链接应如下所示。最后的?v = xxx用于缓存清除,以便人们在更改css文件时获取更新的css。
答案 1 :(得分:1)
Darren Kopp是对的“〜不应该被渲染。这是asp.net中的一个特殊字符,这意味着应用程序的根源”..
并且不要使用“.min”,因为当你设置BundleTable.EnableOptimizations = true;
时,它会最小化你的文件..所以它应该是这样的;
bundles.Add(new StyleBundle("~/backendcss").Include(
"~/backendContent/bootstrap/css/bootstrap.css",
"~/backendContent/assets/jui/css/jquery-ui.css",
"~/backendContent/assets/jui/jquery-ui.custom.css",
"~/backendContent/plugins/uniform/css/uniform.default.css",
"~/backendContent/plugins/fullcalendar/fullcalendar.css",
"~/backendContent/plugins/fullcalendar/fullcalendar.print.css",
"~/backendContent/assets/css/fonts/icomoon/style.css",
"~/backendContent/assets/css/main-style.css",
"~/backendContent/plugins/pnotify/jquery.pnotify.css",
"~/backendContent/plugins/msgbox/jquery.msgbox.css",
"~/backendContent/IntroJS/css/introjs.css"));
答案 2 :(得分:1)
我认为缩小工作需要添加global.asax文件
BundleTable.EnableOptimizations = true;
您也可以尝试创建不同的组,例如将jqueryui与bootstrap分开等等。