2017-08-24 68 views
2

我的弹簧启动应用程序有问题。 看来它不加载自定义的CSS文件。 我把它放在resources/static/css,我也试过resources/public/css但是它也不行。春季不加载自定义css

我离开你我的git的枢纽账户项目,以便您可以检查什么是错的

GitHub Project

此外,当我打开Chrome浏览器的控制台下的登录页面有一个警告

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

回答

2

问题就出在你的MonthlyExpensesController其中包含下面的代码:

@RestController("/monthly") 
public class MonthlyExpensesController { 

    @GetMapping() 
    public Expenses getMonthlyExpenses() { 
     return null; 
    } 
} 

你的错误是您尝试设置的路径/月与注释的值时,控制器。但是@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被加载。

+0

嗨,我修改了控制器,如你所说(我也更新了项目在github,你可以看到),但错误仍然存​​在。我注意到,如果我去localhost:8080/css/style.css它显示该文件。我也尝试删除控制器MonthlyExpenses,但它不起作用 – untruste

+0

检查我更新的答案,在包括css文件的语句中有错误 –

0

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

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

它不工作,同样的错误 – untruste