Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26266929
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Java

2009-10-16 12:54:12

1.最近在写PHP程序的时候总是被PHP里面的文件目录搞不清楚。include的时候总有不爽的时候。
看看JSP的处理
  1. <%  
  2. String path = request.getContextPath();  
  3. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  4. %> 

  1. <base href="<%=basePath%>"> 
这说明在该页面中的所有路径都是于项目的WebRoot为相对路径,如项目的WebRoot下的Images/xxx.jpg,则在任何含有

的页面中都是以Images/xxx.jpg来访问该图片。如WebRoot/jsp/first.jsp

在first.jsp中含有xxx.jpg应该为

Html代码
  1. <img src="Images/xxx.jpg"/>  

 

 而不是

Html代码
  1. <img src="../Images/xxx.jpg"/>  

 

 好处:

      1.不需要在页面中以../或../../来回到上级或上上级目录

      2.都是相对于WebRoot目录,实现了路径的统一


切记:

  1. 整个页面的相对路径是: 即项目的根目录

  2. 比如我现在要引入一个其他的文件的话不用再去写../../这样的了!直接写相对这个根的位置即可!


    看到没有

这表示我们的图片是相对于上面的绝对路径的位置是这个的!


 如果你想写   这样的相对路径的话呢

你就得将这个基本的目录去掉 <base href="<%=basePath%>">  去掉了!


不过我的方案是 :CSS、JS、IMAGES都是走静态域名所以都是使用了绝对目录!


好像这个东西不能处理include 哦。我测试发现使用

结果找不到了

还得使用

这样的。难道说这个东西只会影响到静态文件的引入。

哦我发现a 标签也会受到其影响哦!



总结:

base标记是一个基链接标记,是一个单标记(此标签不需要关闭)。用以改变文件中所有连结标记的参数内定值。它只能应用于标记与之间。
你网页上的所有相对路径在链接时都将在前面加上基链接指向的地址。

会受影响的包括:

图片

声音文件、FLASH、等

JS文件、CSS文件的引入路径

页面的HREF即超链接受影响

但是对JSP的代码不会有什么影响的!

以后如果在写JSP页面的时候是可以非常好地去参考这个哦!


延伸到PHP里面:






阅读(1171) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

hkebao2010-03-27 08:51:01

结论: JSP里面定义: <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 然后在此页面里面全部的静态资源均可以通过 就可以了! 然后在PHP里面也可以这样来定义的定义出来当前页面的根目录然后就可以相对此目录引用图片之类的!