解决方案
1) 采用绝对路径,但为了解决不同部署方式的差别,在所有非 struts 标签的路径前加 ${pageContext.request.contextPath} ,如原路径为:
”/images/title.gif” ,改为
“${pageContext.request.contextPath}/images/title.gif” 。
代码 ” ${pageContext.request.contextPath}” 的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
缺点:
操作不便,其他工具无法正确解释 ${pageContext.request.contextPath}
2) 采用相对路径,在每个 JSP 文件中加入 base 标签,如:
<base href="http://${header['host']}${pageContext.request.contextPath}/" />
这样所有的路径都可以使用相对路径。
缺点:
对于被包含的文件依然无效。
注意:
JS文件可能有问题,最好把
<base href="http://${header['host']}${pageContext.request.contextPath}/" />
放在js文件加载之后