今天碰到的一个低级错误
如果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>