我的弹簧启动应用程序有问题。 它似乎没有加载自定义css文件。 我把它放在 resources / static / css 下,我也在 resources / public / css 下尝试过,但它也不起作用。
我把你的项目留在git hub帐户上,这样你就可以检查出错了什么
另外,当我在chrome控制台下打开登录页面时会出现警告
资源被解释为样式表但以MIME类型text / plain传输:“http://localhost:8080/css/style.css”。
答案 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文件。登录页面在我运行时看起来像这样:
就个人而言,我会将从页面末尾加载css文件的行移动到<head>
部分,以防止在加载css之前显示无样式的页面。
答案 1 :(得分:0)
试试这个。 因为您使用的是Thymeleaf,所以可以使用它来获取资源。
<link type="text/css" href="../static/css/style.css"
th:href="@{css/style.css}" rel="stylesheet" media="screen"/>