2017-08-24 110 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