jsp路径问题,导致配置tomcat虚拟路径,仍然访问不到图片
jsp路径问题,导致配置tomcat虚拟路径,仍然访问不到图片
以前写的一篇是关于eclipse下配置tomcat虚拟路径,访问不到图片 的问题。
今天这个比较不一样,就是在完全已经配置tomcat的service.xml中的虚拟路径的前提下,不管你上传图片到指定盘符下面,还是上传到tomcat默认路径下面,都发现访问不到你上传的文件的问题。
比如你设置的是上传到默认路径下:
String path = request.getServletContext().getRealPath("/resourceURL");
还是上传到指定的盘符下:
String path = "G:/51mnq/htresource/";
都还是访问不到你上传的图片。
如图:
如果出现上述的配置了tomcat虚拟路径还是访问不到图片,或者是网页路径404等问题。
博主教你怎么检查哪里出了问题?
1. 首先确保你配置了本地的tomcat下的虚拟路径
<Context docBase="G:\51mnq\htresource" path="/resourceURL" reloadable="true"/>
2. 如果使用的是eclipse,那么你得保证自己的eclipse下的tomcat的service.xml中也配置虚拟路径。
因为eclipse对tomcat支持有时不是那么友好,单修改tomcat配置可能没有用,用eclipse对tomcat进行配置管理。
在Eclipse中,双击Server视图的Tomcat实例,点击下面的Modules,在里面的web modules里进行修改各个项目的Path。
比如,我想增加让项目访问G盘下的htresource下的图片,就这样配置:
配置结束。
3. 你得测试路径:!!!
启动tomcat服务器,输入虚拟目录访问地址:
(RecruitSys是项目名称,resourceURL是虚拟路径
a.带项目名称的:
http://localhost:8080/RecruitSys/resourceURL/7d3f3b24-2498-42ea-b007-361a6de338fc.jpg
和
b.不带项目名称的:
http://localhost:8080/resourceURL/7d3f3b24-2498-42ea-b007-361a6de338fc.jpg
你会发现:
发现问题!!是关于路径的问题。
解决:
检查你的页面,如果有写:因为有了 <base … > 这个东西,服务器会自动给你加上项目地址的前缀,也就是项目名称,但是你配置虚拟路径的时候,没有写到项目名称,所以,访问资源的时候,去掉项目名称,就能访问项目,加上项目名称,反而访问不到图片。
所以,我们在以后页面显示图片的src=“” 的地方,不用再加路径。
直接使用:
虚拟路径+图片名字
如图:
就能正常预览图片:
好了,以上几点就是关于jsp路径问题,导致配置tomcat虚拟路径,仍然访问不到图片。也是整个配置虚拟路径的相对完善的教程了。
关于页面相对路径和绝对路径,以及request.getContextPath(),${pageContext.request.contextPath} 等,
那么就请参考