Asp.net mvc 为什么我的样式包不能在ASP.NET MVC 4中正确呈现?

Asp.net mvc 为什么我的样式包不能在ASP.NET MVC 4中正确呈现?,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,所以我对ASP.NETMVC4还不熟悉(我用了一点3) 无论如何,在我的BundleConfig.cs文件中,我试图加载Twitter引导css文件和一个额外的site.css文件 但仅呈现site.css文件。我已经确认引导css文件确实位于正确的位置(内容文件夹),并且与site.css位于相同的位置 bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap.min.css",

所以我对ASP.NETMVC4还不熟悉(我用了一点3)

无论如何,在我的BundleConfig.cs文件中,我试图加载Twitter引导css文件和一个额外的
site.css
文件

但仅呈现site.css文件。我已经确认引导css文件确实位于正确的位置(内容文件夹),并且与site.css位于相同的位置

bundles.Add(new StyleBundle("~/Content/css").Include(
            "~/Content/bootstrap.min.css",
            "~/Content/bootstrap-responsive.min.css",
            "~/Content/site.css"));
编辑

好吧,这不是我喜欢的方式,但Andrei Drynov建议我试试:

@import url("bootstrap.min.css")
body{background: #e8e6da;padding-top:60px;padding-bottom:40px;}
@import url("bootstrap-responsive.min.css")
但这不起作用。我将site.css改为上面的内容,但现在背景的主体颜色甚至不起作用。如果删除@imports,则背景颜色正确

编辑2

我不明白,但补充说:

bundles.IgnoreList.Clear();
到我的包文件修复它。嗯,我不太明白。但是我能够从site.css中删除@imports


奇怪。

我不使用bundle进行引导(作为例外),而是使用它的缩小版本,所以这对我来说很有用:

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>@ViewBag.Title</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="@Url.Content("~/Content/bootstrap.min.css")">
    <style>
        body {
            padding-top: 60px;
            padding-bottom: 40px;
        }
    </style>
    <link rel="stylesheet" href="@Url.Content("~/Content/bootstrap-responsive.min.css")">
    @Styles.Render("~/Content/less")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>

默认行为是IgnoreList忽略任何缩小的脚本


你可以从他们的名字中删除“.min”,也可以清除IgnoreList。

为了让其他人知道在这个长线程中找不到有效的解决方案,我遇到了完全相同的问题,我用在实际问题底部的编辑中建议的相同方法解决了它

我启动了一个新的项目MVC4 Web应用程序,用上面显示的完全相同的代码为引导包创建路由:

bundles.Add(new StyleBundle("~/Content/css").Include(
            "~/Content/bootstrap.min.css",
            "~/Content/bootstrap-responsive.min.css",
            "~/Content/site.css"));
但由于未知原因,它没有加载。。最后我放弃了,决定用谷歌搜索,找到了这个页面

我尝试在BundleConfig.cs文件中添加以下内容作为第一行。重新编译,一切开始工作,现在样式被正确加载

bundles.IgnoreList.Clear();

也许这对某些人有帮助。

正如paul正确指出的,bundles As设置为自动忽略“min”文件。但是忽略这一规则是一种不好的做法,请参考此答案以找到更好的解决方案(检查第一个和第二个答案)。

如果您查看开发人员工具中的“网络”选项卡,是否获得了这些CSS文件?否。我看到site.css和我加载的一些JS。如何在布局或视图中引用捆绑包?我在RegisterBundles中有bundles.IgnoreList.Clear()。有趣的是,我认为这是为了ScriptBundles…抱歉,在@import之后遗漏了分号。答案更新了。这当然有效,但我希望使用捆绑包。我真的很喜欢使用捆绑包的想法。对我来说感觉像“Rails”。:-)在您的更新中…将其导入site.css甚至更好。除非有人能告诉我如何在bundle中使用该方法,否则我将使用该方法。@cbmeeks bundle依赖于调试模式,并且它有忽略列表。看起来是忽略列表吗???bundles.IgnoreList.Clear();修好了。将此作为答案发布,我将奖励给您。但我仍然不知道为什么会修复它?默认情况下,在调试模式下,*.min.js将被忽略。这与Paul在上面的回答一致,Paul的回答指出,
.min
文件默认被忽略。他还建议要么清除IgnoreList,要么重命名文件以大量删除.min.Thx!无知者是原因。。。为什么?这是正确的答案。捆绑包将自动使用缩小版本,因此不要将其包含在脚本名称中,只需使用
bootstrap.css
,并将未缩小的版本保留在内容目录中。
bundles.IgnoreList.Clear();