本文是个人参考其他博客结合自身亲自测试,得出一些结论然后更大家分享下,希望能让人少踩点坑。
常规方法(方法一):
%tomcat%/conf/server.xml文件,标签下添加
<Host>
<Context docBase="D:/upload/test/savePath1" path="/mapperUrl"/>
<!--其中docBase为实际文件存储路径,这里由于是非window系统,所以实际存储路径没有硬盘首字母,path为映射路径-->
</Host>
那么在开发的时候,后端将【/mapperUrl/文件名】回传到前端,前端将这作为url,即可访问到【D:/upload/test/savePath1/文件名】下的资源。
但尝试根据上面的方式配置后,发现还是无法通过映射路径访问图片资源,根据网上资料,由因可能:
- path与docBase路径名称不能一致;
- conf/web.xml设置listings值为true,目的是显示虚拟路径。正式项目运作必须关掉。(本人试过,还是无效)
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
本人解决此次问题的方案,方法二
路径:%tomcat%/conf/Catalina/localhost/
方案:此路径下创建xml文件,文件名为你想访问的Path路径(即path=”“的值),xml文件内写入实际存储地址。
example:创建文件为 mapperUrl.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:/360Downloads" reloadable="true"></Context>
IDEA配置文件映射路径的一些区别:
由于转用IDEA,这里配上虚拟路径配置方法(仅开发时使用),部署服务器时还是得按照上面方式配置tomcat
如下配置等同在tomcat 配置文件里设置指定虚拟路径