未从MVC站点中的捆绑包部署CSS文件

未从MVC站点中的捆绑包部署CSS文件,css,asp.net-mvc,asp.net-mvc-4,Css,Asp.net Mvc,Asp.net Mvc 4,捆绑包对我来说是新的,但在我的_layout.cshtml文件中,我有以下内容: @Styles.Render("~/Content/css") bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap.css", "~/Content/site.css", "~/Content/Portal.css")); 在App_Start\BundleConfig.cs文件中,我有以下

捆绑包对我来说是新的,但在我的_layout.cshtml文件中,我有以下内容:

@Styles.Render("~/Content/css")
bundles.Add(new StyleBundle("~/Content/css").Include(
    "~/Content/bootstrap.css",
    "~/Content/site.css",
    "~/Content/Portal.css"));
在App_Start\BundleConfig.cs文件中,我有以下内容:

@Styles.Render("~/Content/css")
bundles.Add(new StyleBundle("~/Content/css").Include(
    "~/Content/bootstrap.css",
    "~/Content/site.css",
    "~/Content/Portal.css"));
当我通过从Visual Studio启动在localhost上查看站点时,会插入所有样式,如下所示:

<link href="/Content/bootstrap.css" rel="stylesheet"/>
<link href="/Content/site.css" rel="stylesheet"/>
<link href="/Content/Portal.css" rel="stylesheet"/>

然而,当我部署到测试服务器时,portal6.css文件不包括在标记中,事实上甚至没有复制到我的发布目录中。我手动将该CSS文件复制到内容文件夹中,但包似乎没有引用它

有人知道问题是什么吗

…事实上甚至没有复制到我的发布目录中。我手动将CSS文件复制到内容文件夹

听起来这只是在项目文件属性中将项目文件的
生成操作
标记为
内容
——否则,它将不会像您所注意到/声明的那样“发布”

要查看
portal.css
属性:

  • 选择文件
  • 然后F4ALT+ENTER
  • 在属性选项卡/窗口中,检查
    生成操作
    是否设置为
    内容
    (很有可能设置为
    已被“手动复制”)


    需要“发布”的某些css文件(font awesome.css)的示例视图
注意:假设文件“包含在项目中”(而不仅仅是在文件系统中),因此它应该在VS的项目视图中可见(不启用“查看所有文件”切换)

Hth…

检查#1

在Visual Studio中,右键单击该文件,验证BUILD ACTION=CONTENT。内容=包含到部署包文件。这是最常见的问题,设置为“无”

检查#2

如果上述设置正确,那么接下来可能发生的情况是,在独立于解决方案构建项目时,您的构建没有看到此属性。这就是发生在我身上的事情。由于某些原因,生成配置不会更新可能添加到GUI外部项目的文件上的新属性集

Visual Studio

1) 执行“清洁溶液”或“构建”下的清洁 2) 现在“构建”或执行“发布”,文件将成为部署包文件夹的一部分


额外注意:最后,还要注意,如果您的web.config设置debug=false,包将构建默认文件名“file.css”。如果debug=true,这将指示bundle查找“file.min.css”版本,并将获取缩小文件版本。因此,如果CSS文件内容不同或包含与原始CSS文件不匹配的CSS类,这也会导致意外的结果

Portal.css
portal6.css
?标记中根本没有链接节点?@StephenMuecke。讨论中的CSS文件是Portal.CSS-可能是大写的P引起了问题?@skylerustin我得到了site.CSS和bootstrap.CSS的两个链接节点,但Portal没有。css@Styles.Render(“~/Content/css”)在测试环境中根本没有在标记中生成任何节点吗?