2016-10-10 60 views
3

我在文件系統和數據庫中都有png文件。所以我試圖用如何使用Wicket 7對圖像進行緩存?

使用ByteArrayResource

其顯示的圖像只有一次。瀏覽器刷新只顯示圖片佔位符。圖像URL有附加參數:

& antiCache = 123456789

所以看起來使用ByteArrayResource對我來說,它只能使用一次,且必須重新加載,即使頁面只得到refresehd。接下來我想

PackageResource

其在瀏覽器中(即使在刷新後)所顯示的圖像,而且還呈現了「antiCache」參數。這件事發生後,即使顯式調用

setCachingEnable(true); 

而且「PackageResource」不能從數據庫中使用我的PNG數據。

回答

3

僅在Ajax響應中添加antiCache參數。如果您在Ajax響應中添加圖像(https://github.com/apache/wicket/blob/70606d73e9165d37c1d8b7c7820279fb4be18770/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java#L543),則Wicket假定它必須重新繪製,因此它會修改網址。 您可以重寫此方法並抑制此行爲。

+0

此信息值得在Wicket用戶指南中顯示。我擴展了Wicket Image並提供了一個PackageResourceReference。雖然src屬性看起來不錯,但使用PackageResource並未在瀏覽器中顯示圖像。 –