问题背景:
之前配置过apache作为静态资源的服务器,后因端口问题无法使用,但此时tomcat8的端口可以使用,因此需要通过配置tomcat8作为静态资源服务器,以达成某些静态资源的访问之需要。但配置完成后,可能会涉及跨域访问的问题,因此还需要解决跨域问题,本文最后会解决跨域(CORS on Tomcat)问题。
步骤1:配置Tomcat 8访问静态资源
打开apache-tomcat-8.5.20\conf目录下的 server.xml 文件,在<Host>节点中增加如下文本
<Context path="/staticAsset" docBase="E:\apacheAsset\" reloadable="true" debug="0" crossContext="true"/>
path 为访问的程序路径名称(端口号后面跟着的那个项目名称) ,docBase 为静态资源的路径 ,reloadable="true" 代表实时更新资源目录文件。
如下图所示:
E盘下的 docBase如下图所示
完成后 双击startup.bat文件(我的位于apache-tomcat-8.5.20\bin),重启tomcat即可。重启后,即可访问该目录下的静态资源。
步骤2:解决Tomcat 8 CORS跨域问题
由于我们的应用程序在访问上述静态资源的时候会涉及跨域的问题,如何解决CORS on Tomcat的问题,需要进行<filter>的配置。
打开apache-tomcat-8.5.20\conf路径下 web.xml文件,增加如下配置
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如下图所示:
保存该文件,重启tomcat8 即可完成静态资源的跨域访问。