前言:
在项目开发过程中会有图片上传和回显功能,如果图片上传的路径存在项目服务的路径下(例如:在WEB-INF或者webapp文件夹下),在项目发布的时候附件会编译进入发布的jar包或者war包中,从而使得发布的文件过大。所以会将文件附件放到指定的目录或者服务器上面,不过有时候上传到指定目录下面后无法正常通过服务请求访问,访问时会出现404找不到路径常见问题。
以下内容介绍tomcat虚拟路径设置的两种解决方法。
方法一:使用Tomcat自己的虚拟路径
修改服务部署的Tomcat安装目录下conf文件夹下的server.xml中的内容
在server.xml文件中的< Host >便签中添加以下内容:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<!--
下方的Context内容为新增内容:
path="/images" 虚拟路径
docBase="D:\images" 图片存放的真实路径
-->
<Context path="/images" docBase="D:\images" debug="0" reloadable="true" crossContext="true" />
</Host>
server.xml效果如下:
在IDEA上面Tomcat启动项目的时候,将"Deploy applications configured in Tomcat instance"勾上,即可重新启动Tomcat启动项目。如下图:
方法二:不改动Tomcat配置,直接用IDEA设置虚拟路径
在IDEA上面Tomcat启动项目的时候,不要勾选"Deploy applications configured in Tomcat instance",如下图:
打开IDEA中Tomcat配置中的"Deployment"设置虚拟路径,路径如下:
按照上述步骤步骤设置完即可重启Tomcat即可。
两种方法任意一种即可实现功能,以下是我测试的功能实现效果图: