tomcat映射路径配置的一些坑

本文是个人参考其他博客结合自身亲自测试,得出一些结论然后更大家分享下,希望能让人少踩点坑。


常规方法(方法一): 
%tomcat%/conf/server.xml文件,标签下添加

<Host>
<Context docBase="D:/upload/test/savePath1" path="/mapperUrl"/>
<!--其中docBase为实际文件存储路径,这里由于是非window系统,所以实际存储路径没有硬盘首字母,path为映射路径-->
</Host>

那么在开发的时候,后端将【/mapperUrl/文件名】回传到前端,前端将这作为url,即可访问到【D:/upload/test/savePath1/文件名】下的资源。

但尝试根据上面的方式配置后,发现还是无法通过映射路径访问图片资源,根据网上资料,由因可能:

  1. path与docBase路径名称不能一致;
  2. 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 配置文件里设置指定虚拟路径

发布了21 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/a5552157/article/details/81203312