假设我想通过直接从 RAM 内存中加载 .css
、.js
和一些其他文件(favicon、一些图像)的全部内容来提高性能,而不用到磁盘.
我可以只编写 servlet/ Controller ,它会在上下文初始化或第一次请求时加载这些文件,并在简单的 String
中缓存,但是是否有任何标准的解决方案来为选定的静态资源提供服务从 RAM 中的 Spring、Servlets 或 Tomcat 规范?
最好也支持适当的 header (缓存控制等)。
最佳答案
Tomcat 默认缓存静态文件。
您可以在 context.xml 中配置缓存行为。特别是(来自 http://tomcat.apache.org/tomcat-7.0-doc/config/context.html ):
缓存最大大小
静态资源缓存的最大大小(以千字节为单位)。如果未指定,则默认值为 10240(10 兆字节)。
缓存对象最大大小
将放置在缓存中的静态资源的最大大小。如果未指定,则默认值为 512(512 KB)。如果这个值大于 cacheMaxSize/20,它将减少到 cacheMaxSize/20。
cacheTTL
缓存条目重新生效之间的时间量(以毫秒为单位)。如果未指定,则默认值为 5000(5 秒)。
允许缓存
如果此标志的值为真,将使用静态资源的缓存。如果未指定,则标志的默认值为 true。
关于java - 在 Spring/Servlet/Tomcat 中从内存中提供静态资源的优雅方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22778293/