我有一个使用默认':cache:1.1.8'插件配置的Grails 2.4.4项目。它还使用默认的“:asset-pipeline:1.9.9”插件。
运行应用程序时,我在日志中看到以下调试消息:
DEBUG simple.MemoryPageFragmentCachingFilter - No cacheable annotation found for GET:/PROJECTNAME/grails/assets/index.dispatch [controller=assets, action=index]
我如何使此消息消失?我的意思不是过滤日志文件,而是为 Assets 管道 Controller 放置可缓存的注释,或类似的东西。
更新:事实证明,由于sass-asset-pipeline:1.9.0中的一个缺陷,我收到了几十条DEBUG日志消息,而不是一条消息。
我更新到sass-asset-pipeline:1.9.1,因为他们说他们在1.9.1中修复了一些缓存问题:
https://github.com/bertramdev/sass-grails-asset-pipeline/issues/11
最佳答案
你不想缓存响应和方法调用应该使用与缓存静态资源完全不同的逻辑。
通常,静态资源很少更改并且永远被缓存,但是使用唯一的名称或其他某种机制,因此如果您要更改CSS / JS / etc。文件,则可以使客户端使用新版本。
但是缓存服务方法调用和 Controller 响应通常会更短命,因为数据库更新通常会触发缓存失效和刷新,以确保使用正确的数据。
asset-pipeline插件及其插件插件对智能缓存提供了强大的支持,您应该在此处进行管理,但不要滥用缓存插件。
关于grails - 如何在Grails Assets 管道 Controller 操作上放置@Cacheable批注?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32658585/