SpringBoot对静态资源的映射规则

本文详细解析了Spring Boot中静态资源的配置方式,包括如何通过webjars引入静态资源,项目的静态资源文件夹位置,以及如何配置ResourceProperties来调整缓存时间等参数。同时,阐述了/**映射规则下,如何访问项目根路径下的index.html页面及favicon.ico图标。

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

 

一.所有/webjars/** ,都去classpath:/META-lNF/resources/webjars/找资源;webjars :以jar包的方式引入静态资源;
  http://www.webjars.org/

 

@ConfigurationProperties(prefix = "spring. resources", ignoreUnknownFields = false)public class ResourceProperties implements ResourceLoaderAware {
//可以设置和静态资源有关的参数,缓存时间等

 

二. "/**".访问当前项目的任何资源,( 静态资源的文件夹)
 classpath:/META-INF/resources/

 

 classpath:/resources/

 classpath:/static/,

 classpath:/public/

 "/”:当前项目的根路径

 

三.  首页: 静态资源文件夹下的所有index.htmI页面;被"/**"映射,localhost:8080/找index页面


四. 所有的**/favicon.ico 都是在静态资源文件下找;

 

 

 

### Spring Boot中静态资源映射的最佳实践 Spring Boot通过其内置机制简化了静态资源的管理,遵循“约定优于配置”的理念。以下是最佳实践中涉及的关键点: #### 默认静态资源路径 Spring Boot 自动扫描特定目录中的静态资源文件,并将其暴露给外部访问。这些默认目录包括 `classpath:/static/`, `classpath:/public/`, `classpath:/resources/` 和 `classpath:/META-INF/resources/`[^1]。任何放置在这几个目录下的文件都可以被直接访问。 #### 使用自定义位置加载静态资源 如果开发者希望更改默认行为或者增加额外的静态资源存储位置,则可以通过修改 application.properties 或者 application.yml 文件来实现这一点。例如,在 properties 文件中可以这样设置新的静态资源路径: ```properties spring.resources.static-locations=classpath:/custom-static/,file:///var/www/static/ ``` 上述代码片段表明除了标准的位置外还增加了两个新地方作为可选的静态内容源之一[^3]。 #### 安全性和CORS支持 对于生产环境而言,考虑安全性非常重要。当跨域资源共享(Cross-Origin Resource Sharing, CORS) 成为必要条件时,应该适当地调整策略以允许合法请求而拒绝非法尝试。这通常需要编写一段简单的 Java 配置类来进行细粒度控制[^4]: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") // 只开放API接口部分 .allowedOrigins("http://example.com"); } } ``` #### 性能优化建议 为了提高用户体验并减少服务器负载压力,应当启用浏览器缓存功能以及压缩传输数据大小等功能。可以在application.properties里加入如下参数开启GZIP压缩和长期缓存策略[^2]: ```properties server.compression.enabled=true server.compression.min-response-size=1024B spring.resources.cache.period=31536000 # 设置一年有效期 (单位秒) ``` 综上所述,尽管Spring Boot提供了非常便利的方式用于处理项目内的静态资产,默认情况下无需太多干预即可正常运作;然而针对特殊需求场景下仍需灵活运用各种高级特性完成定制化开发目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值