关于使用ssm与spring时,配置tomcat 虚拟目录( doBase )中的一些坑

一、使用SSM需要 配置虚拟目录时 tomcat的配置

在tomcat server.xml的<HOST></HOST>中加入以下内容

 

 

在配置完成之后,当我们访问URL  为  ip+端口/users的时候,服务器就会去访问我们的doBase下的路径

比如,在users目录下有 一个名为abc.jpg的文件 ,

那么我们 访问 ip+端口/users/abc.jpg 就会得到G:/imooc-videos-resources/douyin/users/下的abc.jpg。

需要注意的是 设置虚拟目录时,在ip+端口号后面不需要加上项目名,举个例子

 

这是我项目的访问路径,如果你使用ip+端口号/项目名/users是访问不了虚拟目录的,必须使用ip+端口号/users 才能映射到我们配置的虚拟目录,所以其实tomcat doBase 映射 只针对 ip+端口号 下的映射,不论其他的因素。

 

下面通过从数据库中读取字段,然后配置tomcat虚拟目录的实例来演示

数据库的内容:

图片真实的存储路径

 

 

 

虚拟目录的配置:

 

 

需要注意的是doBase   G:/imooc-videos-resources/douyin/users  这里是固定的写法,写为G:/imooc-videos-resources/douyin/ 还是G:/imooc-videos-resources/douyin 都是无法识别的,本来我想的是通过/users映射到G:/imooc-videos-resources/douyin/ 那么就可以在douyin目录下进行查找 刚好是可以找到users目录的,但实践证明,这样是不行的。

 

结果测试:

 

 

二、如果是springboot项目

使用Springboot时 在类中的代码如下 (数据库,以及图片的真实路径,等其他信息都是一样的)

 

 

 

这里的意思是/** 表示匹配到的所有的静态资源,都会去G:/imoo-videos-resources/douyin/ 下的目录去进行查找,

这里与在使用SSM在tomcat中的配置不同的是,使用SSM时在tomcat中映射为 G:/imoo-videos-resources/douyin/ 是无法找到的,必须 配置为

 <Context docBase="G:/imooc-videos-resources/douyin/users" path="/users" /> 

  <Context docBase="G:/imooc-videos-resources/douyin/bgm" path="/bgm" />

才能匹配到

而使用springboot当我们映射为G:/imoo-videos-resources/douyin/ 。那么 douyin目录下的所有文件(夹)其实都是匹配到的。

 

posted @ 2018-06-11 21:00  宇宙间的星河集  阅读(671)  评论(0编辑  收藏  举报