1)如何让浏览器可以访问服务器磁盘中的html 我们通常都是把页面放在web服务器中的。如果放在磁盘中,得让web服务器去读取这个磁盘存放页面的位置,这样才能找到。于是度娘告诉我这么配置。 首先将你的资源放到一个指定磁盘的目录中,比如我的/Users/cd/Downloads/dataPortalSt/,我是mac,在这个目录下存放了html的资源。 接着让我的tomcat容器指向这个地址。找到你的tomcat安装目录,里面有这么个文件,…../apache-tomcat-8.0.45/conf/server.xml。 找到其中的Host,标签,在其中插入Context:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/dataPortalSt" docBase="/Users/cd/Downloads/dataPortalSt/" reloadable="true"></Context> </Host>很明显,这个意思是,当我访问服务器下/dataPortalSt目录时,它就会映射到对应的docBase路径,也就是我的html资源存放路径。
然后重启tomcat,你就可以通过localhost:8080/dataPortalSt/xxx.html来访问页面了。(ps:这里的配置千万别写错,我前面把英文斜杠写成了中文斜杠,找了一下午)
2)接下来就是我遇到的第二个问题了,就是第一步成功了,然而我用eclipse启动tomcat,却没有生效。
解决方案:http://blog.csdn.net/weixin_38824230/article/details/73930257 我采用了第二个方案,修改了我们在eclipse中创建的tomcat对应的server.xml。结果发现host中已经存在了Context,我是我们的javaweb项目。很明显是不能存在两个Context的。
急中生智,再创建一个server单独负责这个磁盘目录,显然是可以的。
3)事情的发展总是出乎意料,有个大神告诉我可以不用开两个server。直接在tomcat最终运行项目的位置改就行了。我的位置是
项目空间/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/server.xml果然这样就可以加多个Context,运行成功。但是这样做每次重新部署项目时server.xml会被重置。
4)最后采用在项目工作空间/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/Catalina/localhost/ 下添加一个新的配置文件,比如命名为abc.xml。编辑内容
//注意这种方式path是不生效的,要用文件名abc做为访问路径 <Context path="" docBase="/Users/cd/Downloads/dataPortalSt/" reloadable="true"></Context>这样可以通过localhost:8080/abc来访问/Users/cd/Downloads/dataPortalSt/目录下的文件。这样重新部署也没问题。
ps:最后path的问题坑了我又大半天= =。很多资料没介绍。最后在一篇资料无意中瞄到了,坑。同时顺便了解到一种热更新部署方式。大家可以看看http://blog.csdn.net/bao19901210/article/details/8695986