【问题标题】:How do I put @Cacheable annotation on Grails asset pipeline controller action?如何在 Grails 资产管道控制器操作上放置 @Cacheable 注释?
【发布时间】:2015-09-18 18:17:51
【问题描述】:

我有一个配置了默认 ':cache:1.1.8' 插件的 Grails 2.4.4 项目。它还使用默认的 ":asset-pipeline:1.9.9" 插件。

在运行应用程序时,我在日志中看到这条 DEBUG 消息:

调试 simple.MemoryPageFragmentCachingFilter - 没有为 GET:/PROJECTNAME/grails/assets/index.dispatch [controller=assets, action=index] 找到可缓存的注释

如何让这条消息消失?我的意思不是过滤日志文件,我的意思是为资产管道控制器放置一个可缓存的注释,或类似的东西。

更新:事实证明,由于 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

【问题讨论】:

    标签: grails sass asset-pipeline


    【解决方案1】:

    你不想。缓存响应和方法调用应该使用与缓存静态资源截然不同的逻辑。

    通常静态资源很少更改并永久缓存,但使用唯一名称或其他机制,因此如果您确实更改了 CSS/JS/等。文件,您可以让客户使用新版本。

    但是缓存服务方法调用和控制器响应的寿命通常要短得多,因为数据库更新通常会触发缓存失效和刷新以确保使用正确的数据。

    asset-pipeline 插件及其插件插件对智能缓存有很好的支持,您应该在那里管理它,但不能滥用缓存插件。

    【讨论】:

    • 感谢您的解释。那么您是否会说过滤该 DEBUG 日志消息几乎是标准做法,因为它或多或少毫无意义?
    • 是的 - 对我来说很有意义。
    • 顺便说一句,如果你好奇的话,我发现我收到了几十条 DEBUG 日志消息,而不仅仅是一条,因为 sass-asset-pipeline:1.9.0 中的一个缺陷。我更新到 sass-asset-pipeline:1.9.1,因为他们说他们在这里修复了 1.9.1 中的一些缓存问题:github.com/bertramdev/sass-grails-asset-pipeline/issues/11
    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多