springboot项目访问不了 static文件夹里的静态页面

本文探讨了在SpringBoot项目中,仅引入spring-boot-starter-web时,无法直接访问src/main/resources下static文件夹的问题。作者发现必须额外导入Spring-boot-starter-thymeleaf才能实现对静态资源的访问,揭示了自动配置的细节。

一个Springboot项目只导入了 spring-boot-starter-web 然后试图访问 src/main/resources 下的 static文件夹

发现访问不了,之前记得看书上说可以访问,自动配置已经配置过了,  

后来发现 必须要导入Spring-boot-starter-thymeleaf 才可以访问,这个自动配置文件是在这个starter里配置的。

转载于:https://my.oschina.net/u/3018126/blog/3060793

在 Spring Boot 应用中,`static` 文件夹通常用于存储静态资源文件,例如 HTML、CSS、JavaScript 和图片等。默认情况下,Spring Boot 会自动配置这些资源的访问路径,并通过 `/**` 映射支持直接访问。 ### 默认访问方式 默认情况下,`static` 文件夹位于项目的 `src/main/resources` 目录下。例如,如果项目中存在如下路径: ``` src/main/resources/static/images/logo.png ``` 可以通过以下 URL 访问该文件: ``` http://localhost:8080/images/logo.png ``` ### 自定义静态资源路径 如果需要自定义静态资源路径,可以在 `application.properties` 或 `application.yml` 文件中进行配置。例如,在 `application.properties` 中添加以下内容: ```properties spring.resources.static-locations=classpath:/custom-static/ ``` 此时,Spring Boot 会从 `src/main/resources/custom-static/` 目录下加载静态资源。需要注意的是,自定义路径后,原有的默认配置(如 `static`、`public` 等)将不再生效[^1]。 ### 静态资源的优先级 Spring Boot 提供了多个目录用于存放静态资源,默认优先级如下: - `resources` > `static` > `public` 这意味着,如果多个目录中存在相同名称的文件,优先级较高的目录中的文件将被优先加载。 ### 示例:访问静态资源 假设项目结构如下: ``` src/main/resources/ ├── static/ │ └── css/ │ └── style.css ├── public/ │ └── images/ │ └── photo.jpg ``` 可以通过以下 URL 访问文件: - CSS 文件:`http://localhost:8080/css/style.css` - 图片文件:`http://localhost:8080/images/photo.jpg` ### 注意事项 1. **避免自定义路径冲突**:如果通过 `spring.resources.static-locations` 自定义了静态资源路径,原有的默认路径(如 `/static`、`/public`)将不再有效。因此,建议仅在必要时进行自定义。 2. **确保资源位置正确**:静态资源应放置在 `src/main/resources/static` 或 `src/main/resources/public` 目录下,否则 Spring Boot 无法正确识别并提供访问支持[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值