Apache Tapestry:META-INF/assets 中资产的绝对路径

Apache Tapestry: Absolute path to assets in META-INF/assets

此处的解决方案帮助我获得 class-path(上下文)中资产的绝对路径 Tapestry 5 - Dynamically generate URL of file in web app context folder in Java code

有没有办法对 META-INF/assets 中存储的资产执行相同的操作(Tapestry 5.4 存储资产的方式)?

具体来说,我想注入我在 META-INF/assets 文件夹中创建的 .html(静态)文件的路径..

目前我有:

public String getMyHtml() {
    String clientURL = assetSource.getContextAsset("html/myhtml.html", locale).toClientURL();

    return clientURL;
}

tml 文件有:

"{ url: '${getDeltaHtml()}' }"

如果 "myhtml.html" 文件位于 class 路径文件夹 (WEB-INF) 中,此方法有效。如果它在 META-INF/assets 文件夹中,它就不起作用,我想把它放在那里

您可以通过此方式获取资产下存储的资产。

首先你必须注入以下内容。

@Inject
private AssetSource assetSource;

@Inject
private ThreadLocale threadLocale;

之后,您可以使用以下方法获取资产。

Asset asset = assetSource.getAsset(null, "classpath:META-INF/assets/myhtml.html", threadLocale.getLocale());