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

Spring Boot多页面无法加载resources/static下CSS/JS文件问题

解决Spring Boot中JSP页面静态资源加载路径问题

你遇到的核心问题是相对路径解析差异导致的:index.jsp在根路径下,相对路径能正确指向static目录;但validate-configuration.jsp的URL带有路径前缀(比如/validate-configuration),相对路径会被错误地拼接在这个前缀后面,导致资源请求404。

下面是几种靠谱的解决方案,按推荐程度排序:

1. 使用绝对路径引用资源(最稳妥)

在JSP中通过${pageContext.request.contextPath}获取应用的上下文路径,拼接成绝对路径引用静态资源:

<!-- CSS引用 -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/style.css">
<!-- JS引用 -->
<script src="${pageContext.request.contextPath}/static/js/jquery-2.1.1.min.js"></script>

这样不管当前页面的URL是什么,资源请求都会指向http://localhost:8090/static/xxx(如果应用有上下文路径,会自动加上,比如http://localhost:8090/myapp/static/xxx),完全避免相对路径的坑。

2. 给页面设置<base>标签

在validate-configuration.jsp的<head>标签内添加<base>标签,统一指定页面所有相对路径的基准URL:

<head>
    <base href="${pageContext.request.contextPath}/">
    <!-- 之后的相对路径都会基于上面的基准 -->
    <link rel="stylesheet" href="static/style.css">
    <script src="static/js/jquery-2.1.1.min.js"></script>
</head>

这个方法的好处是不用修改每个资源的引用路径,一次配置全页面生效。

3. 检查Controller的URL映射

确认validate-configuration.jsp对应的Controller映射是否带有额外前缀,比如:

@RequestMapping("/validate-configuration")
public String showValidatePage() {
    return "validate-configuration";
}

这种情况下页面的URL是/validate-configuration,如果用相对路径static/style.css,浏览器会解析成/validate-configuration/static/style.css,自然找不到资源。前面两种方法已经能解决这个问题,这里只是帮你理解问题根源。

4. 确认Spring Boot静态资源配置(兜底检查)

Spring Boot默认会把resources/static目录下的资源映射到/**路径,也就是说/static/xxx可以直接访问到resources/static/xxx。如果你自定义了WebMvcConfigurer,确保没有覆盖这个默认规则:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    // 不要写错误的资源映射,比如下面这种是多余的,但如果写了要确保路径正确
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
    }
}

如果没有自定义配置,这一步可以忽略,Spring Boot已经帮你处理好了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:55:27