背景:
上传的图片和web应用不在同个路径里,例如web应用在D盘,上传图片1.jpg在E:\upload\img目录里,这时就需要配置虚拟路径后,才能显示图片。
Tomcat和WebLogic的不同配置
1、Tomcat虚拟路径配置:
在tomcat下的conf/server.xml的Host节点里面增加一行配置:
<Context path="/img" docBase="e:\upload\img\" reloadable="true"></Context>
jsp文件相应为<img src="/img/1.jpg" />
说明:path="/img"这里的img可以随便命名,如imgfile,则jsp文件相应为<img src="/imgfile/1.jpg" />
2、WebLogic虚拟路径配置:
找到web应用下的WEB-INF目录里面的weblogic.xml文件(和web.xml同级,没有则新建一个)进行配置,刚开始在配置WebLogic时,模仿Tomcat的配置如
下:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
<context-root>/</context-root>
<virtual-directory-mapping>
<local-path>E:/upload/img</local-path>
<url-pattern>imgfile/*</url-pattern>
</virtual-directory-mapping>
</weblogic-web-app>
jsp文件为<img src="/imgfile/1.jpg" />,结果老是报404找不到错误,经过一番测试,发现这里的url-pattern的imgfile需要是真实存在的路径,这
是和Tomcat最大的区别!
下面为正确的配置方法:
(1)weblogic.xml文件配置
<virtual-directory-mapping>
<local-path>E:/upload</local-path>
<url-pattern>/img/*</url-pattern>
</virtual-directory-mapping>
则jsp文件相应为<img src="/img/1.jpg" />
(2)weblogic.xml文件配置,关键节点如下:
<virtual-directory-mapping>
<local-path>E:/upload/img</local-path>
<url-pattern>/*</url-pattern>
</virtual-directory-mapping>
则jsp文件相应为<img src="/1.jpg" />