STS环境下CSS无法关联.jsp文件技术求助
解决STS环境下JSP无法加载CSS的排查方案
兄弟,我之前在STS开发Spring MVC项目时也踩过一模一样的CSS路径坑,结合你的情况,给你几个亲测有效的排查方向:
检查Spring MVC静态资源映射配置
这是最容易被忽略的核心点!如果你的项目是Spring MVC架构,必须在配置里明确放行静态资源:- 若用XML配置,在
spring-servlet.xml里添加:<mvc:resources mapping="/resources/**" location="/resources/"/> - 若用Java配置类,在配置类中重写
addResourceHandlers方法:@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("/resources/"); }
只有配置了映射,容器才能正确识别
webapp/resources下的静态资源文件。- 若用XML配置,在
核对文件实际部署路径
右键STS里的服务器→Open→Modules,查看你的项目部署根路径,然后去Tomcat的webapps目录下找到你的项目,确认main.css是不是在resources/css/目录下。有时候项目部署时资源路径会被意外修改,直接看实际文件位置最靠谱。用浏览器开发者工具定位请求问题
按F12打开浏览器开发者工具,切换到Network标签,刷新页面后看CSS文件的请求状态:- 如果是404,对比请求URL和实际文件路径,比如你之前请求的是
${pageContext.request.contextPath}/css/main.css,但实际文件在/resources/css/main.css,明显少了resources层级; - 如果是其他状态码,再针对性排查权限或资源损坏问题。
- 如果是404,对比请求URL和实际文件路径,比如你之前请求的是
修正JSP里的CSS引用路径
你的文件路径是webapp>resources>css>main.css,正确的引用应该是:<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/css/main.css">之前你试的路径都没包含
resources这一层,这大概率是导致失败的关键原因!清理项目与服务器缓存
右键项目→Clean,再右键服务器→Clean Tomcat Work Directory,STS的缓存有时候会导致资源不更新,清理后重启项目试试。
内容的提问来源于stack exchange,提问作者Jiff.codes
相关产品推荐
相关产品推荐

