捆绑和缩小不能渲染正确的路径

时间:2013-08-01 05:28:00

标签: asp.net-mvc asp.net-mvc-3 c#-4.0 asp.net-mvc-4 bundling-and-minification

我遇到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"/>
  1. 第一个问题是Tilda ~没有出现在链接的开头,我认为这是问题之一(网站无法正确呈现)现在所有上述css样式表都在解析但是有很多进口和相对网址(图片),我认为那些搞砸了(没有捆绑,如果我只是指向~/backendContent/....一切正常工作

  2. 第二个问题是当我设置BundleTable.EnableOptimizations = true;时会出现更多问题并深入挖掘我会得到一个巨大的列表 (4368,1):运行时错误CSS1019:意外的令牌,发现'@import' (4368,9):运行时错误CSS1019:意外的令牌,找到'url(“layout.css”)'

  3. 我不知道这是否重要,但@Styles.Render("~/backendcss")生成的缩小和渲染样式链接是:

     <link href="/backendcss?v=eMX6YcVB78xPWZV9Dw6seHqsT742J8_M1irfUC0IdaQ1" rel="stylesheet"/>
    

    任何想法?对不起,这是我第一次使用这个功能,并且这个网站有这么多的css和js,它可以节省大量的带宽并加快整个网站的速度。再加上它很酷(即如果我可以让它工作)!!!

3 个答案:

答案 0 :(得分:1)

  1. 不应该呈现~。这是asp.net中的一个特殊字符,意思是the root of the application

  2. 我不确定你为什么会遇到实际缩小的问题,但如果没有消息来源就很难诊断出来。

  3. 优化时的链接应如下所示。最后的?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分开等等。