一般出现那种问题时因为在自己电脑上发布项目时,电脑会有浏览器各种拦截设置,这个具体不是太了解,有兴趣自己去了解下,其中一个有效的解决方法就是通过虚拟路径来访问资源,而不是直接访问本地资源,那样可以有效避开电脑的对浏览器的一些资源访问的拦截(由于本人这样面了解比较少,只是针对于这样面找到了解决方法,如果对原因有说错了的还请跳过,砸门不纠结哈)
配置虚拟路径有两种特别简单的方法:
方法一:通过修改配置文件来进行配置
在<Host></Host>中添加这句话<Context path="/image" docBase="D:\apache-tomcat-9.0.14\uploadfiles" reloadable="true"/>
即你要设置的虚拟路径的映射。这里我通过这样的配置就可以在jsp中通过/image来访问到D:\apache-tomcat-9.0.14\uploadfiles文件中的资源。path:就是你要映射的虚拟路径(自己指定的一个路径来代替docBase) docBase是自己本地磁盘绝对路径
方法二:更方便--特别方便
我不太会用画笔就难得去一一指出来了,操作步骤:
1、双击左下角Servers中的Tomcat v9.0 service at localhost [Stopped,Syschronized]会弹出Tomcat的设置框
2、点击左下角即servers头上一行中的Models,会切换到WebModel的设置
3、点击右边Add External Web Model,就会弹图中的添加框
4、Document base 即资源在本地磁盘的位置,即我们刚设置的docBase一样的
Path:即我们要指定的虚拟路径(通过它来访问磁盘资源),就是我们刚配置文件中的path
5、保存即可,然后重启Tomcat会在service.xml文件中(即刚我们手动修改的配置文件)生成
<Context path="/image" docBase="D:\apache-tomcat-9.0.14\uploadfiles" reloadable="true"/>
6、最后,不好意思,有点小啰嗦,因为我得说清楚点才行。OK
配置后,再想在项目中访问本地磁盘资源就利用虚拟路径来访问就行了,浏览器也没办法拦截。