最近在学习java web时发现写好的web应用中jsp页面中的图片在浏览器上无法显示,图片的路径也对,并且是绝对路径但是图片就是无法加载,仔细思考了半天还是不知其因,最后通过查找资料终于明白了。
原来在web 应用通过网络加载到客户端时(浏览器),它并不能找到绝对路径下的图片资源,也确实没有。
例如我写了一个网页:
<html><head><title>test</title></head><body><img src="E:image1.webp" /></body></html>这个页面的图片的位置在E:image1.webp我们在本地访问一点问题都没有,
这里更够看到图片的原因是网页源码在浏览器上执行的时候,能够找到给定的路径src=“E:image1.webp”,但是我们在tomcat下部署的应用就不同了,tomcat下的网页源码通过网络发送到客户端(浏览器),当浏览器执行时,由于浏览器并不能找到路径src=“E:image1.webp”,这张图片原本在服务器的主机上,客户端主机上肯定是找不到的,所以图片也就不能加载了。
既然tomcat负责web应用,那我们应该通过tomcat来解决问题:
通过修改tomcat中服务器的配置,来设置一个虚拟路径,我们找到tomcat安装目录下的conf目录,conf下有server.xml文件,
例如在tomcat的webapps下部署一个foryou 应用,你的图片资源放在了E:/image下,那么我们在<Host></Host>标签内添加内容
<Context path="/foryou/image/" docBase="E:/image/" />Context 的path属性是在网页中src对应的路径名,docBase是服务器资源的绝对路径
这时候我们就可以看到tomcat下部署的web应用页面中的图片了。
注意配置完成后一定要重启tomcat,这样配置才能生效!
如果你用的是myeclipse开发工具,要配置对应的内置tomcat,内置tomcat一般在工作空间的.metadata下,
如果你用的是tomcat7就去配置.me_tcat7.