base标签大战 ..和夫妇

    技术2025-07-05  13

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

     

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

     

     

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

     

     

     

     

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

     

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

    //getContextPath():返回项目名称 //getScheme(): Returns the name of the scheme used to make this request, for example, http, https, or ftp. //getServerName():返回服务器名称 //getServerPort():返回服务端口号 <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

     

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

     

    <html> <head> <%--使用<base>标签来处理全局的资源访问路径--%> <base href="<%=basePath %>"/> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>添加物料</title> <link rel="stylesheet" href="style/drp.css" mce_href="style/drp.css"> <%--<mce:script src="../script/client_validate.js" mce_src="script/client_validate.js"></mce:script>--%> <mce:script src="script/client_validate.js" mce_src="script/client_validate.js"></mce:script> </head>

     

     

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

     

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

     

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

     

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

    function addItem() { window.self.location ="<%=basePath %>servlet/basedata/ShowAddItemServlet"; }

     

     

     

    <The Same To>

    学会 配置文件+反射,走遍全球都不怕.

     

    源文档 <http://blog.csdn.net/lfsfxy9/archive/2011/02/13/6182259.aspx>

    最新回复(0)