2015-09-18 32 views
0

我有一個配置了默認':cache:1.1.8'插件的Grails 2.4.4項目。它也使用默認的「:asset-pipeline:1.9.9」插件。如何在Grails資產管道控制器操作上添加@Cacheable註解?

運行應用程序時,我看到在日誌中這樣DEBUG消息:

DEBUG simple.MemoryPageFragmentCachingFilter - 未找到GET緩存註釋:/PROJECTNAME/grails/assets/index.dispatch [控制器= assets,action = index]

如何讓此消息消失?我的意思不是通過過濾日誌文件,而是通過爲資產管道控制器放置可緩存的註釋或類似的東西。

更新:事實證明,由於sass-asset-pipeline中存在缺陷,我得到了許多DEBUG日誌消息,而不僅僅是一個:1.9.0。

我更新到SASS資產流水線:1.9.1,因爲他們說他們修正了一些緩存問題在這裏1.9.1: https://github.com/bertramdev/sass-grails-asset-pipeline/issues/11

回答

0

你不想。緩存響應和方法調用應該使用非常不同的緩存靜態資源的邏輯。

通常情況下,靜態資源很少發生變化,並會永久緩存,但使用唯一的名稱或其他機制,因此如果您更改了CSS/JS/etc。文件,您可以讓客戶端使用新版本。

但是,緩存服務方法調用和控制器響應通常要短得多,因爲數據庫更新通常會觸發緩存失效和刷新以確保使用正確的數據。

asset-pipeline插件及其插件插件對智能緩存有很大的支持,您應該在那裏進行管理,但不要濫用緩存插件。

+0

感謝您的解釋。那麼你會說過濾那個DEBUG日誌消息是非常標準的做法,因爲它或多或少沒有意義? – HypeMK

+0

是的 - 對我有意義。 –

+0

順便說一句,萬一你很好奇,結果我得到了幾十個DEBUG日誌消息,而不是一個,因爲sass-asset-pipeline中存在一個缺陷:1.9.0。 我已更新到sass-asset-pipeline:1.9.1,因爲他們表示他們在1.9.1中修復了一些緩存問題: https://github.com/bertramdev/sass-grails-asset-pipeline/issues/ 11 – HypeMK