关于<base href="<%=basePath%>">的一点思考

本文详细解释了在不同情况下,网页中的相对链接如何被解析为绝对URL,包括在未定义&lt;base&gt;标签及定义了&lt;base&gt;标签的情况下的表现。通过实例展示了相对路径、根路径及当前目录的引用方式。

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

在未定义<base href="<%=basePath%>">之前:

<a href="/index.jsp">注册用户</a> :实际URL:http://localhost:8080/index.jsp  显然这是tomcat的初始页面,这显然不是我们想要的,相对于服务器的路径

<a href="index.jsp">注册用户</a> :实际URL:http://localhost:8080/day24/my/name/index.jsp   /my/name为当前页面路径  可以看出不加/即为相对当前页面下的路径

在定义<base href="<%=basePath%>">后:

<a href="/index.jsp">注册用户</a> :实际URL:http://localhost:8080/index.jsp  任然是相对于服务器的路径

<a href="index.jsp">注册用户</a> :实际URL:http://localhost:8080/day24/index.jsp   这才是我们想要的路径,相对于basePath的路径

总结:

1.加入<base href="<%=basePath%>是为<a href="index.jsp">起作用,这中写法为相对于base的相对路径。

2.“/”为虚拟路径,为服务器的路径。

3.当前环境的写法为: href="/day24/index.jsp"。

继续测试以下路径:

在未定义<base href="<%=basePath%>">之前:

"./":代表目前所在的目录。http://localhost:8080/day24/my/name/index.jsp

"../":代表上一层目录。http://localhost:8080/day24/my/index.jsp

在定义<base href="<%=basePath%>">后:

"./":代表目前所在的目录。http://localhost:8080/day24/index.jsp

"../":代表上一层目录。http://localhost:8080/index.jsp

重点:分清相对路径 与根路径,相对路径相对谁?!


href="index.jsp" href="./index.jsp" href="../index.jsp"均为相对路径,根据base的定义 相对的对象也有所不同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值