You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过迁移资源至AWS S3和CloudFront优化Spring应用性能(无代码变更)

解决方案

一、AWS纯配置实现(无需修改代码)

既然已经部署了ALB,直接利用它的路径路由规则就能完成静态资源请求的转发,步骤如下:

  • 给ALB的监听器添加新规则:匹配/images/*、/scripts/*、/css/*这类静态资源路径,将这些请求转发到你的CloudFront域名(而非原EC2目标组)。需要确保S3存储桶已同步所有静态资源,且CloudFront的缓存行为覆盖了对应路径。
  • 配置S3存储桶的CORS规则,允许ALB域名的访问,避免浏览器跨域报错;同时在CloudFront中设置合理的缓存策略,比如给图片、脚本设置较长的TTL,缓存键忽略不必要的查询参数。
  • 验证路由效果:访问应用内的静态资源链接,检查请求是否被转发到CloudFront,确认资源能正常加载即可。

二、Spring标准配置方案(无需修改页面代码)

如果允许调整Spring配置但不想修改页面资源引用,可以用Spring MVC的资源映射能力:

  • 在application.properties中添加配置,将静态资源指向CloudFront域名:
spring.web.resources.static-locations=https://你的CloudFront域名/
spring.web.resources.chain.strategy.content.enabled=true
spring.web.resources.chain.strategy.content.paths=/**

配置后Spring会自动将所有静态资源请求重定向到CloudFront,页面里的旧资源路径无需修改。

  • 若担心缓存更新不及时,可开启资源版本化:
spring.web.resources.chain.strategy.fixed.enabled=true
spring.web.resources.chain.strategy.fixed.paths=/js/**,/css/**,/images/**
spring.web.resources.chain.strategy.fixed.version=v1

后续更新资源时修改版本号,就能强制用户加载最新资源。

内容的提问来源于stack exchange,提问作者Bhanu Prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:02:35