首页 > 代码库 > html <base>标签

html <base>标签

base 元素可规定页面中所有链接的基准 URL 
默认情况下,页面中的链接(包括样式表、脚本和图像的地址)都是相对于当前页面的地址(即:浏览器地址栏里的请求URL)。 
我们可以使用 <base>标签中的href属性来设置,所有的“相对基准 URL”。 

上面说的是什么意思呢?我们来看看代码就知道咯~~ 

这是JSP端的代码 
下面的代码 (十分类似上面 "方法一" 中的JSP代码) 
但是这里我们并没有采用 ${pageScope.basePath}+"相对路径地址" 的方法, 
而是采用了html文件中的 <base>标签: 
代码如下: 
<!-- *************JSP代码******************--> 
<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=gbk" isELIgnored="false"%> 
<% 
String path = request.getContextPath(); 
// 获得项目完全路径(假设你的项目叫MyApp,那么获得到的地址就是 http://localhost:8080/MyApp/): 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<html> 
<head> 
<!-- base需要放到head中 --> 
<base href=http://www.mamicode.com/" ">
</head> 
// 这里我们就可以直接使用相对路径(即: 相对于base标签) 
<a href=http://www.mamicode.com/"jsp/login.jsp">Login
</html> 
<!-- *************************************--> 

大概看完了上面的代码,或许您还是有些疑惑 *_*~~ 
不过当您看到了,下面的代码,可能就豁然开朗了 (*^__^*) 嘻嘻……。 

当我们去执行上面的那段JSP代码后,我们可以在浏览器中可以查看,他所返回给客户端的html代码: 
执行完上述JSP后,所返回的html代码如下: 
<html> 
<head> 
<base href=http://www.mamicode.com/"http://localhost:8080/MyApp/">
</head> 
// 设置了 <base>后,相对路径,相对于的就是base中的路径,而不再是浏览器地址的请求路径啦~~~ 
<a href=http://www.mamicode.com/"jsp/login.jsp">Login
</html> 

我们可以看到JSP返回的html代码中,包含了 <base href=http://www.mamicode.com/"http://localhost:8080/MyApp/">内容。
也就是说,在本html文件中,遇到的所有 “相对链接(例如: <a href=http://www.mamicode.com/"jsp/login.jsp">)”,都是相对于base
的路径(即:http://localhost:8080/MyApp/),所以我们就可以进行的使用 相对链接,而不必担心, 
转发操作(forward)或 请求地址不同不同所造成的页面无法找到的错误啦~(即: HTTP: 404)。。。