我需要缓存来自 AEM 的资源(图像和字体)。使用 SlingHttpServletRequest 我可以获取所有资源路径。那么我如何将实际资源放入浏览器缓存中。我使用 slingResponse.setHeader() 检查它。但仍然找不到将资源路径放入浏览器缓存的方法。
最佳答案
浏览器缓存使用 Cache-Control 进行控制 header 。理想情况下,需要在调度程序上进行设置。在标准设置中,调度程序未配置为缓存响应 header 。因此,当从缓存提供服务时,服务器上设置的任何 header 都不会用于后续请求。
使用mod_headers调度程序上的模块,用于发送您感兴趣的文件的 max-age 或过期值。
例如:要在浏览器上缓存所有静态资源 1 年
<LocationMatch "^\/etc\/designs\/my-project\/clientlibs-site\/(css|images|fonts|placeholders)\/.*">
Header set Cache-Control "public, max-age=31536000"
</LocationMatch>
遇到缓存控制 header 时,浏览器将缓存资源。
关于java - 我们如何控制OSGI上资源的网页缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59106231/