当前位置: 代码迷 >> Java Web开发 >> 再次问及<base href="<%=basePath%>">路径改变的有关问题
  详细解决方案

再次问及<base href="<%=basePath%>">路径改变的有关问题

热度:8672   发布时间:2013-02-25 21:18:56.0
再次问及<base href="<%=basePath%>">路径改变的问题
Java code
//jsp路径为<%=basePath%>data/test.jsp<%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%>    <%    String path = request.getContextPath();    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";    //out.println("ok");如果在这里输出,基路径会变为<%=basePath%>data/,所以找不到图片,1%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>//out.println("ok");如果在这里输出,基路径也会变为<%=basePath%>data/,所以也找不到图片,2<base href="<%=basePath%>">//out.println("ok");如果在这里输出,基路径为<%=basePath%>,这样就找得到图片,3<meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>Insert title here</title></head><body>    <img src="images/1.gif" width="14" height="14"> //图片路径<%=basePath%>images/1.gif</body></html>


之前我也问过这个问题,我想这样再问一次,希望大家提意见。
像代码注释上所说的,在第1种和第2种情况下,基路径会变为<%=basePath%>data/;此时图片的URL为<%=basePath%>data/images/1.gif,URL错了,所以找不到图片。而第3种情况,基路径为<%=basePath%>,正常;此时图片的URL为<%=basePath%>images/1.gif,URL正确,所以找得到图片。请问,为什么在不同地方输出字符串时,他的基路径会有可能变成加上jsp前的data这个目录呢?
我很用心地问这个问题,想很久了,很多方法都用了,先谢谢大家先了。。。

------解决方案--------------------------------------------------------
个人感觉 <head>后面加了ok后。破坏正常html正常解析
导致下面这几不起作用了。
<base href="<%=basePath%>">
------解决方案--------------------------------------------------------
探讨
嗯,我试了,确实和浏览器有关,用ie就不能,我用360极速浏览器就行了

引用:

LZ可以做个纯HTML试一下,应该也是那样。这个浏览器的解析有关。

------解决方案--------------------------------------------------------
建议LZ在做页面的时候少用IE,尽量用Chrome浏览器,也许你会发现,同样的代码,在后者打开是正确的,在前者却会出现各种问题··看了你的代码,我也测试了一下,我用IE,360IE,Chrome都跑了一下·
的确是浏览器的问题·
  相关解决方案