如何在Tomcat中定义需要缓存的资源?主资源代表什么含义?
主资源定义
Tomcat中的主资源指Web应用本身自带的标准资源集合,默认对应WAR包解压后或应用部署根目录下的所有文件,包括WEB-INF目录、静态资源(JS/CSS/图片)、静态HTML页面等应用核心原生资源,未额外配置PreResources/PostResources时,Tomcat默认仅加载主资源响应请求。
指定Tomcat缓存资源的实现方式
你可以通过拆分资源集、单独配置缓存开关的方式,自定义哪些资源需要缓存:
- 全局默认对主资源开启缓存,先在
<Resources>根标签设置全局缓存参数,比如你之前用到的cacheMaxSize="100000" - 针对不需要缓存的资源,单独配置为
PreResources或PostResources资源集,给该资源集单独设置cachingAllowed="false"即可禁用这部分资源的缓存,其余未单独配置的资源默认沿用全局缓存规则
参考配置示例(写在context.xml中):
<Context> <!-- 全局资源配置:主资源默认开启缓存,设置总缓存容量 --> <Resources cacheMaxSize="100000" cachingAllowed="true"> <!-- 单独配置动态资源目录,挂载到应用的/dynamic路径,关闭该部分资源的缓存 --> <PostResources base="/opt/app/dynamic_resources" webAppMount="/dynamic" cachingAllowed="false" className="org.apache.catalina.webresources.DirResourceSet" /> </Resources> </Context>
补充:三类资源的优先级区别
三类资源的加载优先级从高到低为:PreResources > 主资源 > PostResources,同路径下优先级更高的资源会覆盖低优先级资源。
内容的提问来源于stack exchange,提问作者Software Engineer
相关产品推荐
相关产品推荐

