静态资源访问路径
静态资源路径配置决定了浏览器如何访问CSS、JS、图片等静态文件。
资源路径结构
标准目录结构
XML
webapp/
├── static/
│ ├── css/
│ ├── js/
│ ├── images/
│ └── fonts/
└── WEB-INF/
└── views/
路径映射配置
XML配置
Java
<!-- 单一映射 -->
<mvc:resources mapping="/static/**" location="/static/"/>
<!-- 多路径映射 -->
<mvc:resources mapping="/resources/**"
location="/static/,classpath:/resources/"/>
注解配置
jsp
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/")
.setCachePeriod(3600); // 缓存1小时
}
}
页面引用方式
JSP页面
HTML
<%@ page contentType="text/html;charset=UTF-8" %>
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/css/style.css">
<script src="${pageContext.request.contextPath}/static/js/app.js"></script>
<img src="${pageContext.request.contextPath}/static/images/logo.png">
HTML页面
Java
<link rel="stylesheet" href="/static/css/style.css">
<script src="/static/js/app.js"></script>
<img src="/static/images/logo.png">
路径类型
| 路径类型 | 格式 | 示例 |
|---|---|---|
| 绝对路径 | /开头 | /static/css/style.css |
| 相对路径 | 无/开头 | css/style.css |
| 上下文路径 | ${contextPath} | ${pageContext.request.contextPath}/static/... |
| Classpath | classpath: | classpath:/static/ |
缓存配置
text
registry.addResourceHandler("/static/**")
.addResourceLocations("/static/")
.setCachePeriod(31536000); // 缓存1年
| 缓存时间 | 场景 |
|---|---|
| 0 | 开发环境,不缓存 |
| 3600 | 生产环境,1小时 |
| 31536000 | 长期缓存,版本化资源 |
生产环境建议设置缓存,减少服务器压力;开发环境设置cachePeriod(0)便于调试。
要点总结
- 静态资源统一放在/static目录下便于管理
- mapping配置URL访问路径
- location配置资源存储位置
- 使用${pageContext.request.contextPath}避免上下文路径问题
📝 发现内容有误?点击此处直接编辑