tomcat8:虚拟目录配置及404bug

目标:访问ID+路径,直接获取静态资源,如图片等。
常规方法(方法一):
%tomcat%/conf/server.xml文件,标签下添加

<!-- 增加虚拟路径,供访问本地图片-->
<Context path="/img" docBase="D:\test" debug="0" reloadable="true" crosscontext="true"></Context>
<Context path="/360" docBase="D:/360Downloads" ></Context>
<Context path="/img" docBase="D:\test" reloadable="true"></Context>

据网上资料的值,引发问题的情况有几个:

  1. path与docBase路径名称不能一致;
  2. 实际地址docBase注意\/区别(据我测试好像没区别);
  3. 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>

设置虚拟根目录

标签下添加

<Context path="" docBase="D:\test"></Context>

PS:直接访问根路径无效,无法查看到列表,必须根目录下直接访问具体资源名。

本人解决此次问题方案,方法二

路径:%tomcat%/conf/Catalina/localhost/
方案:此路径下创建xml文件,文件名为你想访问的Path路径(即path=”“的值),xml文件内写入实际存储地址。
example:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:/360Downloads" reloadable="true"></Context>

test.xml
设置完成后重启tomcat,访问http://localhost/test
即可看到该文件目录列表。

思考

此次问题难点在于tomcat始终读取不到我设置的path路径,感觉十分蹊跷。
我猜测可能是由于不同版本的tomcat设置此处的位置不同,而百度谷歌拿到的资源大部分是2年前tomcat5 6。
由此观之,有必要看看官方文档的说明了。

总结

经过实际操作,发现eclipse下配置的tomcat中,需要给Server配置方法一,即可访问静态路径; 如果直接在tomcat文件夹内修改配置文件,则必须重启并清理workspace缓存。
eclipse修改tomcat配置
但是如果是实际发布的tomcat服务器,外部访问,则必须用方法二,此刻方法一是无效的。。。
至于为啥,我也不知道,今天这个tomcat快把老子整哭了。。马拉个巴巴的

PS:后来找到一篇总结比较好的。
这里写图片描述

参考资料

http://blog.csdn.net/lawmansoft/article/details/7394331
http://www.cnblogs.com/hnlyh/articles/5544920.html

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值