在MVC站点中没有从bundle中部署CSS文件

时间:2017-01-11 00:44:12

标签: css asp.net-mvc asp.net-mvc-4

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

@Styles.Render("~/Content/css")

在App_Start \ BundleConfig.cs文件中,我有以下内容:

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文件,实际上甚至没有复制到我的Publish目录中。我手动将该CSS文件复制到Content文件夹,但看起来捆绑包没有引用它。

有人知道这是什么问题吗?

2 个答案:

答案 0 :(得分:0)

  

...实际上甚至没有复制到我的Publish目录中。我手动将该CSS文件复制到Content文件夹...

听起来只是在项目文件属性中将项目文件的Build Action标记为Content的情况 - 否则,它不会像您注意到的那样“发布”。

查看portal.css属性:

  • 选择文件
  • 然后 F4 ALT + ENTER
  • 在“属性”标签/窗口中检查Build Action是否设置为Content(可能已将<{1}}设置为“手动复制”)<登记/>
    sample properties of font-awesome.css需要“发布”的某些css文件(font-awesome.css)的示例视图

注意:假设文件“包含在项目中”(不仅仅是在文件系统中) - 因此它应该在VS的项目视图中可见(没有启用“查看所有文件”切换)。

... H个

答案 1 :(得分:0)

检查#1

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

检查#2

如果正确设置了以上内容,则可能发生的下一件事是,在独立于解决方案构建项目时,构建不会看到此属性。这就是发生在我身上的事情。由于某些原因,构建配置不会更新可能在GUI外部添加到项目中的文件上的新属性集。

Visual Studio

1)执行“清洁解决方案”或在“构建”下进行清洁 2)现在“生成”或执行“发布”,该文件现在将成为部署包文件夹的一部分。

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