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