Spring不加载自定义css

时间:2017-08-24 09:40:47

标签: java css spring spring-boot

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

我把你的项目留在git hub帐户上,这样你就可以检查出错了什么

GitHub Project

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

  

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

2 个答案:

答案 0 :(得分:2)

问题在于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文件。登录页面在我运行时看起来像这样:

login screen

就个人而言,我会将从页面末尾加载css文件的行移动到<head>部分,以防止在加载css之前显示无样式的页面。

答案 1 :(得分:0)

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

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