`
forever8tf
  • 浏览: 96890 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

base标签

阅读更多

本文将给大家简述一下在Jsp页面中<base>标签设置全局资源路径的使用,也就是<base>标签 大战 ..和/ 。

先通过以下截图看一下资源文件script和images文件夹与根目录的位置关系。

大家看清这里scriptimages两个文件夹在Java项目中的位置。

分别从Tomcat部署后的资源访问情况来看,scriptimages文件夹在项目中的位置。

Jsp文件头部键入以下代码,从而获取URL根路径.

  1. //getContextPath():返回项目名称
  2. //getScheme():Returnsthenameoftheschemeusedtomakethisrequest,forexample,http,https,orftp.
  3. //getServerName():返回服务器名称
  4. //getServerPort():返回服务端口号
  5. <%
  6. Stringpath=request.getContextPath();
  7. StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8. %>

从图中我们可以看出,script文件夹在WebRoot目录下,也就是在项目根目录下。<head>标签中直接用<base>标签即可给全局资源路径设置根路径。

  1. <html>
  2. <head>
  3. <%--使用<base>标签来处理全局的资源访问路径--%>
  4. <basehref="<%=basePath%>"/>
  5. <metahttp-equiv="Content-Type"content="text/html;charset=GB18030">
  6. <title>添加物料</title>
  7. <linkrel="stylesheet"href="style/drp.css"mce_href="style/drp.css">
  8. <%--<mce:scriptsrc="../script/client_validate.js"mce_src="script/client_validate.js"></mce:script>--%>
  9. <mce:scriptsrc="script/client_validate.js"mce_src="script/client_validate.js"></mce:script>
  10. </head>

 

我们平时更多的是使用..来返回上级目录,用../的组合来拼接成项目资源路径,它俩总是成对出现,这样做反而还费力不讨好,经常出现问题。

当我们使用<base>标签,从根本路径上解决资源访问问题之后,就不用考虑资源文件夹和根目录的位置关系了,不管是相对还是绝对位置,都只要在写清该文件的路径即可。其实,这也是把繁琐的路径拼写抽象出来,提供了一个简洁的方法来给全局设置一个根路径,避免了拼写疏忽导致某些资源找不到,无法访问。

这样<base>标签要比..和/的组合使用效果要好,更加省心。

但要注意一点,在javascript代码中,我们是需要这样操作的。因为在javascript中<base>标签是起不到效果的。

  1. functionaddItem(){
  2. window.self.location="<%=basePath%>servlet/basedata/ShowAddItemServlet";
  3. }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics