【问题标题】:Spring doesn't load custom cssSpring不加载自定义css
【发布时间】:2017-08-24 09:40:46
【问题描述】:

我的 Spring Boot 应用程序有问题。 似乎它没有加载自定义 css 文件。 我把它放在resources/static/css下,我也试过放在resources/public/css下,但它也不起作用。

我将我的项目留在 git hub 帐户上,以便您检查问题所在

GitHub Project

另外,当我在 chrome 的控制台下打开登录页面时,会出现警告

资源被解释为样式表,但以 MIME 类型 text/plain 传输:“http://localhost:8080/css/style.css”。

【问题讨论】:

    标签: java css spring spring-boot


    【解决方案1】:

    问题在于您的MonthlyExpensesController,其中包含以下代码:

    @RestController("/monthly")
    public class MonthlyExpensesController {
    
        @GetMapping()
        public Expenses getMonthlyExpenses() {
            return null;
        }
    }
    

    您的错误是您尝试使用注释的值设置控制器的路径 /monthly。但是@RestController 注释的值是用作bean 名称而不是用于路径解析。

    因此,您的MonthlyExpensesController 已注册为默认路径。它被发现是一个控制器来处理 /css/style.css 并返回 null,这会导致您看到空响应。

    将控制器更改为:

    @RestController
    public class MonthlyExpensesController {
    
        @GetMapping("/monthly")
        public Expenses getMonthlyExpenses() {
            return null;
        }
    }
    

    它可以正常工作。

    还有一件事:请在以后使用最少的可编译示例,我首先必须设置一个虚拟数据库才能让程序运行。

    更新:

    除了更改控制器以提供 css 文件之外,您还需要修复代码以加载样式表。你必须改变

    <link type ="text/css" href="css/style.css"/>
    

    <link rel="stylesheet" href="css/style.css"/>
    

    否则该文件不会被解释为 css 文件。当我运行它时,登录页面看起来像这样:

    就我个人而言,我会将加载 css 文件的行从页面末尾移到 &lt;head&gt; 部分,这样可以防止在加载 css 之前显示未设置样式的页面。

    【讨论】:

    • 嗨,我按照你说的修改了控制器(我也更新了github中的项目,你可以看到),但错误仍然存​​在。我注意到如果我去 localhost:8080/css/style.css 它会显示该文件。我也尝试删除控制器 MonthlyExpenses 但它不起作用
    • 检查我更新的答案,包括css文件在内的语句中有错误
    【解决方案2】:

    试试这个。 由于您使用的是 Thymeleaf,因此您可以使用它来获取资源。

    <link type="text/css" href="../static/css/style.css"
          th:href="@{css/style.css}" rel="stylesheet" media="screen"/>
    

    【讨论】:

      猜你喜欢
      • 2012-07-22
      • 2023-03-29
      • 2020-08-15
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2015-08-12
      • 1970-01-01
      相关资源
      最近更新 更多