SpringMVC(5)@RequestMapping窄化路径后静态资源失效

本文介绍了解决Spring MVC项目中静态资源路径错误的方法,包括使用相对路径、绝对路径及通过${pageContext.request.contextPath}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题复现

代码窄化路径【@RequestMapping(value=“user”)】

在这里插入图片描述

静态资源在url中拼接到了【user后面】

在这里插入图片描述

解决方案【在页面使用绝对路径||相对路径回到上一级】

<!-- 相对路径,多了user -->
    <!-- http://localhost:8080/testSpringMVC3/user/css/bootstrap.min.css -->
<!--     <link href="css/bootstrap.min.css" rel="stylesheet"> -->

	<!-- ./表示当前文件夹,多了user -->
	<!-- http://localhost:8080/testSpringMVC3/user/css/bootstrap.min.css -->
<!--     <link href="./css/bootstrap.min.css" rel="stylesheet"> -->

	<!-- /表示绝对路径,少了项目工程名 -->
	<!-- http://localhost:8080/css/bootstrap.min.css -->
<!--     <link href="./css/bootstrap.min.css" rel="stylesheet"> -->

	<!-- ../表示相对路径,回到上一级,正确,但是项目变动,就需要修改-->
	<!-- http://localhost:8080/testSpringMVC3/css/bootstrap.min.css -->
     <link href="../css/bootstrap.min.css" rel="stylesheet">
    
    <%-- ${pageContext.request.contextPath}获取当前项目工程名--%>
    <!-- http://localhost:8080/项目工程名/css/bootstrap.min.css -->
    <link href="${pageContext.request.contextPath}/css/bootstrap.min.css" rel="stylesheet">
    

在这里插入图片描述

原因

  • 静态资源的路径不匹配
  • 窄化路径后,在controller上指定的路径会存在,导致静态文件不能直接从项目工程名下获得

补充:【在这个方法对我来说是失效的,但可以一试】

	<!-- 不拦截静态资源 -->
	<!-- 配置URL中静态资源的本地映射路径 -->
	<!-- location元素表示webapp目录下的js包下的所有文件;
		 mapping元素表示以/js开头的所有请求路径,如/js/a 或者/js/a/b;
		 该配置的作用是:DispatcherServlet不会拦截以/js开头的所有请求路径,并当作静态资源
		 交由Servlet处理 -->
	<mvc:resources mapping="/user/js/**" location="/js/"/>
	<mvc:resources mapping="/user/css/**" location="/css/"/>
	<mvc:resources mapping="/user/fonts/**" location="/fonts/"/>
<!-- 	<mvc:default-servlet-handler/> -->
  • mapping:浏览器访问静态资源文件的路径

  • location:需要映射到的项目里面的真实的静态资源的路径

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值