有时候需要引用一些资源文件提升网站响应速度。例如前端页面的css与js文件。项目通过配置虚拟路径映射来解决。
Windows下
/安装路径/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<!-- 增加的静态资源映射配置 -->
<Context path="/static" docBase="D:\static" reloadable="true" crossContext="true"></Context>
</Host>
- docBase:指定 Web 应用的文件路径。
reloadable:如果这个属性设为 true,tomcat 服务器在运行状态下会监视在WEB-INF/classes 和 WEB-INF/lib 目录下 class 文件的改动,如果监测到有 class 文件被更新的,服务器会自动重新加载 Web 应用。 - crossContext:如果想在应用内调用 ServletContext.getContext()来返回在该虚拟主机上运行的其他 web application 的 request dispatcher,设为 true。在安全性很重要的环境中设为 false,使得 getContext()总是返回 null。缺省值为 false。
- Debug:与这个 Engine 关联的 Logger 记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为 0。
重启tomcat,如果你想访问D:\static文件夹下hello.jpg图片
在浏览器输入http://localhost:8080/static/hello.jpg
Linux下
其实和Windows下的操作差不多,就是改一下本地文件路径,linux的盘符路径表示和win不同
tomcat的安装路径/apache-tomcat-你的版本/conf
例如:/usr/local/apache-tomcat-8.0.53/conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<!-- 增加的静态资源映射配置 -->
<Context path="/static" docBase="/home/static" reloadable="true" crossContext="true"></Context>
</Host>
重启tomcat,如果你想访问/home/static文件夹下hello.jpg图片
在浏览器输入http://localhost:8080/static/hello.jpg