WebRoot根目录下分别有css,pageImages,userPages
当前显示异常的A.jsp页面就放在userPages底下.jsp发布的页面识别不了这样的相对路径:
"../css/style.css"或<img src="../pageImages/5-22.gif"
导致在设计视图里都能正确看到页面布局或图片,可是发布后浏览就显示不正常了(完全引用不了这些样式或图片).如果将路径统一换成"<%=request.getContextPath() %>/css/style.css"或<img src="<%=request.getContextPath() %>/pageImages/5-22.gif"
(<%=request.getContextPath() %>用来找到相对路径)就能在发布的时候正常浏览,可是到了设计视图又显示不了.
两头为难,该怎么解决啊?
当前显示异常的A.jsp页面就放在userPages底下.jsp发布的页面识别不了这样的相对路径:
"../css/style.css"或<img src="../pageImages/5-22.gif"
导致在设计视图里都能正确看到页面布局或图片,可是发布后浏览就显示不正常了(完全引用不了这些样式或图片).如果将路径统一换成"<%=request.getContextPath() %>/css/style.css"或<img src="<%=request.getContextPath() %>/pageImages/5-22.gif"
(<%=request.getContextPath() %>用来找到相对路径)就能在发布的时候正常浏览,可是到了设计视图又显示不了.
两头为难,该怎么解决啊?
发布时再换回来<%=request.getContextPath() %>
jsp发布的页面识别不了这样的相对路径:
"../css/style.css"或<img src="../pageImages/5-22.gif"如果用相对路径那要看你当前所在什么路径下.把这些搞清楚了应该不会错的!
楼上的tuxingxing,谢谢你的群啊,会加的.
绝对路径行不通,我做这个项目得换两个地方做.也不是治根的办法.
大家还有什么好的方法吗?比如刚才的bluter1104怎么引用高级的jsp啊?
我试试去.
不是基础的.
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">看看你这里有没有base标签, 有的话表示你的相对路径是相对于根目录,如果没有就是相对于当前目录,
你改一下试试吧,我感觉是这里的问题
当显示异常的代码头部拼接basePath字符串就搞定了.如下:
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/userPages/";
哈哈,这才是治根的法子啊!
eclipse不会自动帮我们加上去,只有我自己手动加了.
用绝对路径 就不用考虑 页面跳来跳去后 的路径到底是什么了。
所以我觉得 也是绝对路径安全点 不会错。
用c标签 也可以:<c:url value="[相对路径]"/>
<%
String path =request.getContextPath();
%>
"../css/style.css"或<img src="../pageImages/5-22.gif"
或<%=path %>/css/style.css这样是一定行的
而我直接改了以下的,上哪都OK,何乐而不为呢.
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/MyPages/";
%>
引用时依然:
<img src="../pageImages/5-22.gif"
多好啊!