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

如何配置SpringMVC获取同目录静态资源?解决JS目录下CSS 404问题

解决SpringMVC中动态生成的CSS文件404问题

首先得理清楚问题根源:你当前的静态资源配置已经覆盖了/js/目录下的所有资源,但日历插件动态生成在webapp/js/theme下的CSS还是404,大概率是因为请求路径匹配或者资源处理逻辑的小问题,给你几个实用的解决思路:

思路一:确认现有配置的有效性(最基础)

你现有的<mvc:resources location="/js/" mapping="/js/**"/>其实已经能匹配所有/js/开头的请求,包括/js/theme/xxx.css这种子目录下的资源。先检查两个关键点:

  • 访问这个CSS的URL是否正确:比如插件生成的文件是webapp/js/theme/calendar.css,那访问路径应该是http://你的域名/js/theme/calendar.css,别写错了路径结构。
  • 部署后服务器上的js/theme目录里确实存在这个CSS文件——有时候动态生成的文件可能没同步到部署目录里。

思路二:新增专门的子目录资源配置

如果上面的检查没问题还是404,可以单独给js/theme目录加一条资源配置,明确告诉SpringMVC处理这个目录下的所有资源:

<mvc:resources location="/js/theme/" mapping="/js/theme/**"/>

把这段配置加到你现有的静态资源配置后面就行,这样会更精准地匹配该目录下的所有文件,不管后缀是js还是css。

思路三:启用DefaultServlet处理静态资源

如果你的SpringMVC的DispatcherServlet映射的是/(拦截所有请求),有时候会出现mvc:resources没覆盖到的边缘情况,这时候可以启用容器的DefaultServlet来兜底处理静态资源:

<mvc:default-servlet-handler/>

这段配置会让SpringMVC把静态资源请求交给Tomcat(或其他应用容器)的DefaultServlet处理,能解决大部分静态资源访问的异常问题。

额外注意点

如果用了Maven这类打包工具,要确保js/theme目录在打包时被包含;如果是开发环境,记得重启应用让新的配置生效,同时检查IDE的部署目录是否同步了动态生成的文件。

内容的提问来源于stack exchange,提问作者code-life balance

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:09:45