SpringBoot项目访问不到static目录的静态资源

本文记录了一次解决Spring Boot应用中静态资源404错误的过程。问题出现在浏览器访问HTML页面时返回404,尽管资源在resource目录的static下存在。原因在于Maven默认未将HTML资源编译到class路径。解决方案是在pom.xml中添加资源配置,指定编译包括HTML在内的资源。完成配置并重启项目后,静态资源成功访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天记录一个bug解决过程。

问题描述

问题解决 


问题描述

可以看到,resource目录的static目录下明明有addStu.html静态资源。 

 浏览器访问addStu.html:http://localhost:8088/boottrans/addStu.html

问题解决 

 刚看到这个404错误,我感觉很奇怪,明明资源是有的却报404,我们要搞清楚一个原理,就是访问项目中的资源是看编译后的class类路径中是否存在这个资源,如果没有的话就会报404。

我去查看我的编译后的class路径,可以看到确实没有addStu.html资源,

解决方法:

因为maven默认只编译java源文件,你想编译配置文件,就得手动配置想要编译的文件,在项目的pom文件中加上以下的配置:

    <build>
            <!--指定resource中的xml和properties以及html文件编译到类路径中,
            供运行的时候使用-->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                    <include>**/*.html</include>
                </includes>
            </resource>
        </resources>
    </build>

最后重启项目,访问:http://localhost:8088/boottrans/addStu.html 

解决!

当Spring Boot项目中的静态资源路径无法正常访问时,这通常是因为浏览器请求的URL格式不对或者是配置文件设置的问题。以下是可能的原因和解决方法: 1. **目录结构**:静态资源默认放在`src/main/resources/static`目录下。确认资源是否放在这里,并且路径书写正确,例如`/static/css/style.css`。 2. **配置文件**:在application.properties或application.yml中,需要配置Spring Boot处理静态资源的路径。添加如下的配置: ```yaml spring: resources: static-locations: classpath:/static/, file:///Users/yourusername/Documents/project/static/ ``` 或者,如果你使用的是WebMvcConfigurer: ```java @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/", "file:/Users/yourusername/Documents/project/static/"); } ``` 3. **启动模式**:如果在DevTools模式下运行(即`spring-boot-devtools`启用),静态资源可能会被自动映射到其他端口,这时你需要关闭DevTools或修改其配置。 4. **Tomcat Server**:检查是否有其他的服务器或中间件如Apache或Nginx介入,它们可能需要额外的配置来指向Spring Boot的静态资源。 5. **跨域问题**:如果从其他域名或端口请求,可能会遇到跨域限制,可以配置CORS策略允许跨域访问。 检查上述各项后,应该能解决问题。如果还是不行,记得查看日志输出,看看有没有关于404错误或者其他有用的错误信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

躺着听Jay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值