Note | Spring Boot插入外部CSS樣式表

2022 MAR 9

問題

在課題中,要求在引用Bootstrap之外引入外部樣式表來定義錯誤信息的文字樣式。

我嘗試了以下兩種方法:

htmlCopied!
<!-- method 1 --> <link href="/css/stylesheet.css" rel="stylesheet" /> <!-- method 2 with Thymeleaf--> <link th:href="/css/stylesheet.css" rel="stylesheet" />

但是奇怪的是,兩種方法都行不通,當初我以為是引入的Bootstrap把我自己的樣式表覆蓋了,於是我按照網路上的說法,在Bootstrap引用之後才引用自己的樣式表。

htmlCopied!
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous" /> <link href="/css/stylesheet.css" rel="stylesheet" />

但是依舊行不通。我把Bootstrap給注釋掉,來檢查CSS文件能不能正常讀取,發現文件並沒有被正常讀取。

解決

我於是查找關於Spring Boot的外部CSS樣式表的引用相關。發現是自己的文件路徑的問題。

Spring Boot項目的文件路徑如下:

markdownCopied!
└── resources ├── static ├── templates │   ├── index.html │ └── ... └── ...

在上面的嘗試中,我都將樣式表文件放在templates/css路徑下。但是Spring Boot的默認CSS/JS讀取路徑是static/

所以把文件放在上述路徑下就可以正常讀取了,並且上述兩種方法都可以正常讀取樣式表。