如何使用 Wicket 7 制作可缓存的图像?

How can I make an image cacheable with Wicket 7?

我在文件系统和数据库中都有 png 文件。所以我尝试使用

ByteArrayResource

只显示一次图像。浏览器刷新仅显示图像占位符。图像 url 附加了一个参数:

&antiCache=123456789

所以 ByteArrayResource 在我看来只能使用一次,即使页面仅被刷新也必须重新加载。接下来我尝试了

PackageResource

在浏览器中显示图像(即使在刷新后),但也呈现 "antiCache" 参数。即使在显式调用

之后也会发生这种情况
setCachingEnable( true );

另外"PackageResource" 无法使用数据库中的 png 数据。

仅在 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 会假定它必须重新绘制,因此它会修改 url。 您可以覆盖此方法并抑制此行为。