欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  首先我们说HTML中的base标签写相对路径的内容:
 
  html中base标签解决相对路径问题,
 
  问题是门户系统一直使用的是相对路径,首页做了rewrite,而首页的很多链接(包括css、js、图片等)都是相对路径,问了门户系统那边的没法解决,只能用相对路径。
 
  杯具来了,href="news/2014/05/25/1234.html"类似这样的链接都成了http://www.111cn.net/news/2014/05/25/1234.html的全路径,而这个路径在nginx中是没法识别成门户系统的(nginx是通过/portal来匹配的)。
 
  这是因为:HTML文档所有链接中的相对路径,浏览器都会提取当前文档的URL来填充。
 
  突然想起了HTML的base标签,来看W3C的解释:
 
  <base>标签为页面上的所有链接规定默认地址或默认目标。
 
  通常情况下,浏览器会从当前文档的URL中提取相应的元素来填写相对URL中的空白。
 
  使用<base>标签可以改变这一点。浏览器随后将不再使用当前文档的URL,而使用指定的基本URL来解析所有的相对URL。这其中包括<a>、<img>、<link>、<form>标签中的URL。
 
  html中base标签的使用实例:
 
  <head>
 
  <basehref="http://www.php.cn/i/"/>
 
  <basetarget="_blank"/>
 
  </head>
 
  <body>
 
  <imgsrc="eg_smile.gif"/>
 
  <ahref="http://www.php.cn">W3School</a>
 
  </body>
 
  问题解决了。
 
  注:文中使用的域名是真的,但是路径确是找不到的。
 
  base标签最好不要动态写入,否则在Firefox和IE中会有一个小bug,比如对于页面http://localhost/static/test.html:
 
  html中base标签的使用实例:
 
  <html>
 
  <head>
 
  <script>
 
  document.write('<basehref="http://localhost/"/>');
 
  </script>
 
  </head></p><p><body>
 
  <imgsrc="static/1.jpg"/>
 
  </body>
 
  </html>
 
  base标记是一个基链接标记,是一个单标记。用以改变文件中所有连结标记的参数内定值。它只能应用于标记<head>与</head>之间。
 
  利用html中的<base>标签获取相对路径:(绝对路径不支持)
 
  下面是对html中的<base>的介绍:
 
  base元素可规定页面中所有链接的基准URL
 
  默认情况下,页面中的链接(包括样式表、脚本和图像的地址)都是相对于当前
 
  页面的地址(即:浏览器地址栏里的请求URL)。
 
  我们可以使用<base>标签中的href属性来设置,所有的“相对基准URL”。
 
  上面说的是什么意思呢?我们来看看代码就知道咯~~
 
  这是JSP端的代码,下面的代码(十分类似上面“方法一”中的JSP代码)
 
  但是这里我们并没有采用${pageScope.basePath}+”相对路径地址”的方法,
 
  现在采用了html文件中的<base>标签:
 
  <html>
 
  <head>
 
  <basehref="http://localhost:8080/MyApp/">
 
  </head>
 
  <!--//设置了<base>后,相对路径,相对于的就是base中的路径,而不再是浏览器
 
  地址的请求路径啦~~~-->
 
  <ahref="jsp/login.jsp">Login</a>
 
  </html>





本文转载自中文网
 

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html5/h54800.shtml