继上篇nginx端解决资源匹配的方式之后,本篇文章来对tomcat端的解决方式进行说明:
此法仅仅适用于项目名称导致的资源匹配不到的情况,那么怎么来判断是不是由这种情况导致的呢,很简单:
在浏览器开发者工具上,打开页面文件,在页面的head标签内部,给你的样式文件的路径加上项目名称若是访问的到则说明是这种问题导致的,这样你就可以来直接配置tomcat来解决问题了而不用去动nginx,也就是所谓的去项目名称访问,下面我们来看一下解决方式。
单项目情况
Tomcat的配置文件 \conf\server.xml 添加如下配置:
<Context path="" docBase="/home/tomcat-fkar-7979/webapps/fkar-web" debug="0" reloadable="true"/>
效果如下:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!-- 添加该配置-->
<Context path="" docBase="/home/tomcat-fkar-7979/webapps/fkar-web" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
在Context标签中path的值就是项目的访问名称,即为项目的别名,比如path=”/abc” ,项目的访问路径即为 http://localhost:8080/abc ; docBase的值为项目在的物理路径(绝对路径)
多个项目情况
对于多个项目配置的情况下,可以添加多个Context标签,效果如下:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!-- 第一个项目,访问路径 http://localhost:8080 -->
<Context path="" docBase="/home/tomcat-fkar-7979/webapps/fkar-web" debug="0" reloadable="true"/>
<!-- 第二个项目,访问路径 http://localhost:8080/istep -->
<Context path="/istep" docBase="/home/tomcat-istep-8686/webapps/istep" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
当然context标签也可以用来配置一下文件路径共程序访问,这里只是做了去项目名称的访问而已。