如何使用 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。
您可以覆盖此方法并抑制此行为。
我在文件系统和数据库中都有 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。
您可以覆盖此方法并抑制此行为。