一尘不染

在Spring / Servlet / Tomcat中从内存提供静态资源的优雅方法?

tomcat

假设我想通过加载的全部内容,以提高性能.css.js以及其他一些文件(图标,一些图像)直接从RAM内存没有击中磁盘。

我可以编写servlet / controller来简单地将这些文件加载​​到上下文init或第一个请求中并进行缓存String,但是
是否有任何标准的解决方案可以在Spring,Servlets或Tomcat规范中为从RAM中选择的静态资源提供服务?

也支持适当的标头(缓存控制等)会很好。


阅读 241

收藏
2020-06-16

共1个答案

一尘不染

Tomcat默认情况下会缓存静态文件。

您可以在context.xml中配置缓存行为。特别是(来自http://tomcat.apache.org/tomcat-7.0-doc/config/context.html):

cacheMaxSize
静态资源缓存的最大大小,以千字节为单位。如果未指定,则默认值为10240(10兆字节)。

cacheObjectMaxSize
将放置在缓存中的静态资源的最大大小。如果未指定,则默认值为512(512 KB)。如果此值大于cacheMaxSize /
20,它将减小为cacheMaxSize / 20。

cacheTTL
重新验证缓存条目之间的时间(以毫秒为单位)。如果未指定,则默认值为5000(5秒)。

cachingAllowed
如果此标志的值为true,则将使用静态资源的缓存。如果未指定,则标志的默认值为true。

2020-06-16