独立文件中的CSS在JSP页面中无法生效的原因是什么?
问题核心原因
Java Web规范中WEB-INF是受保护的目录,服务器禁止客户端直接访问该目录下的所有资源,所以你在<link>标签中引用WEB-INF下的CSS文件时,浏览器请求会被服务器拦截,无法加载到样式。IDEA能识别路径只是IDE的静态项目路径解析能力,和运行时的访问规则无关。
解决步骤
- 第一步:移动静态资源位置
把WEB-INF下的css文件夹剪切到和WEB-INF平级的web应用根目录(通常叫webapp或WebContent,是存放公开jsp、html资源的父目录)下,调整后的文件路径为css/style.css。 - 第二步:修改JSP中的样式引入代码
把原有<link>标签的路径替换为:
<link href="${pageContext.request.contextPath}/css/style.css" rel="stylesheet" >
- 可选:如果项目使用了SpringMVC等框架,需要确认静态资源映射规则,避免框架拦截CSS请求:
以XML配置的SpringMVC为例,需要添加如下配置放行静态资源:
<mvc:resources mapping="/css/**" location="/css/" />
注解配置的SpringBoot项目默认不会拦截static目录下的静态资源,把css文件夹放到resources/static下即可。
内容的提问来源于stack exchange,提问作者user15599360
相关产品推荐
相关产品推荐

