解决tomcat重启图片消失,context怎么配置
时间: 2024-09-12 21:16:07 浏览: 44
Tomcat映射虚拟目录context配置不用重启
当Tomcat服务器重启后,静态资源(包括图片)可能会丢失或显示不出来,这是因为浏览器通常会缓存已经加载过的资源。为了避免这个问题,你可以通过`<Context>`配置让Tomcat提供一种机制来处理静态资源,尤其是对于不希望缓存的情况。
首先,在`server.xml`中的`<Context>`标签内,添加`useHttpOnly="true"`和`cacheSeconds="-1"`两个属性:
```xml
<Context useHttpOnly="true" cacheSeconds="-1" path="/images" docBase="path/to/images">
<Resource name="imgDir" auth="Container" type="org.apache.catalina.SimpleResource"
factory="org.apache.catalina.webresources.FileResourceFactory"
directory="path/to/images"/>
</Context>
```
解释一下这些配置:
- `useHttpOnly="true"`:这将防止非安全协议(如HTTP)传输cookie,同时也能告诉浏览器不要缓存这个目录下的资源。
- `cacheSeconds="-1"`:设定缓存时间为负数,意味着永不缓存。
- `docBase`:指定静态资源的存放目录,例如图片文件夹。
- `<Resource>`标签:定义了一个名为`imgDir`的资源,它代表了图片目录,并指定了资源工厂,使得Tomcat能正确加载并返回这些静态内容。
重启Tomcat之后,如果浏览器之前缓存了这些图片,它们将会因为`Cache-Control`头的设置而过期,从新请求服务器获取资源,而不是直接使用本地缓存。
阅读全文