问题描述
在myEclipse中 jsp里的“../image/xx.jpg”表示根目录可以显示图片但是部署到tomcat里用浏览器打开就无法显示图片,这是为什么呢?
解决方案
应该使用绝对路径:<%=request.getContextPath()%>/image/xx.jpg使用相对路径难免遇到你这种情况,1、比如你把项目部署为Tomcat的根应用(将你的应用下的JSP、JS、CSS等资源和WEB-INF一股脑拷贝到Tomcat路径下的webappsROOT下就是部署为根应用)时,相对路径是“../image/xx.jpg”2、而如果是部署为一般应用(就是应用的目录或war包拷贝到webapps下面),相对路径就应该是“../../image/xx.jpg”所以应该使用绝对路径。MyEclipse下可能就是相当于第一个情况,这要看你的具体配置了。
解决方案二:
一般../image/xx.jpg这种相对路径的写法用于css文件中,是根据css文件的路径计算的。如果在html、jsp页面中,直接这样写,很容易出现找不到图片的问题。除非你确定没有其它转发请求,然后还要求你精确的写出相对的路径。基本上都是1楼所讲的加上表达式:${pageContext.request.contextPath}/来使用contextPath确定图片所在目录。
解决方案三:
右键点击下图片应该出现位置,查看属性,看下引用的位置,根据这个修改一下
解决方案四:
不建议这种相对路径../image/xx.jpg why 因为该地址默认是基于浏览器地址栏地址计算 如浏览器地址是http://s.com/c/a则计算得到的是 http://s.com/c/images/xx.jpg 所以比如你在使用如servlet转发时可能出现问题 计算的不对请使用根相对路径 如${pageContext.request.contextPath}/aa/images/xx.jpg