今天碰到的一個低級錯誤
如果springboot無法加載靜態資源css和js文件,有以下可能出現的情況,而我是最后一種!!!
(1)未設置靜態掃描路徑,這有兩種方式
第一個方式:
創建一個MyConfig類繼承WebMvcConfigurerAdapter
package com.bo.bookdb;
/**
* @author:hgt
* @version:1.0
* @date:2020/5/12
* @description:com.bo.bookdb
*
* 因為默認路徑雖然是在static下,
* 但並沒有包含static 下的各個文件夾,
* 因此當我們把靜態文件移入這些文件夾后,
* spring boot就不認識了。
* 因此,為了讓spring boot認識,
* 我們需要添加一個配置類來把我們自己的路徑添加進去,
* 具體代碼如下
*/
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class MyConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
}
第二個方式:
在application.properties當中添加
spring.resources.static-locations=classpath:/resources/,classpath:/static/,classpath:/templates/
(2)你設置了掃描路徑,卻依舊在html文件href路徑中增加了static等字眼。這是不對的!!!
正確示例:<link href="/css/hello.css" rel="stylesheet"/>
(3)第三個錯:link標簽的屬性未添加rel="stylesheet"
正確示例:<link href="/css/hello.css" rel="stylesheet"/>
額外話題:
如果感覺自己寫的都對,可以先試試清理瀏覽器緩存,這個真的很煩人
補充:第二天又測試了一下,發現了static的資源又訪問不了,然后我又稍微做了些修改,
發現只要你的static里面還有子包,你都可以href路徑添加../ 就OK了
示例:<link href="../css/index.css" rel="stylesheet">
如此終於得到解決!!!
如果你的系統的html單純的輸入地址而無法找到,也許你需要在pox.xml中配置如下(放在build標簽里面):
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/webapp</directory>
<!--注意此次必須要放在此目錄下才能被訪問到 -->
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>