gpt4 book ai didi

tapestry - Tapestry 5中如何获取资源路径

转载 作者:行者123 更新时间:2023-12-04 14:36:16 65 4
gpt4 key购买 nike

如何获取 Assets 目录的 URL,以便在 JavaScript 中使用它来动态加载 Assets ?

背景:
在 Tapestry 5 中, Assets 的路径可以改变以避免缓存问题。该路径取决于应用程序的版本,因此对于开发、测试和生产模式通常也不同。

注入(inject) Assets 并在 Java 中获取它们的路径很容易。在 .tml 模板文件中,可以使用 ${asset:classpath:/com/example/myApp/img/test.png} 包含 URL。在 CSS 中,相对路径工作正常。 JavaScript 的最佳解决方案似乎是在模板中包含脚本标记并提供包含路径的全局属性。

问题是,如何获取 Tapestry 中的 Assets 基础 URL?
如何使用 JavaScript 访问此路径?

最佳答案

看看讨论here和 JIRA here .

Thiago H. de Paula Figueiredo已创建一个 RequestFilter 来解决此问题,以便他可以使用 wymeditor它在 javascript 中加载动态相关 Assets 。源代码here

* edit * 以上评论指的是最新(未发布)的 Tapestry 5.4 版本。

对于低于 5.4 的版本,我假设您可以通过以下方式获取根类路径 Assets URL:

${asset:classpath:/}

或者

@Inject
private AssetSource assetSource;

public String getRootPath() {
return assetSource.getClasspathAsset("/").toClientURL();
}

关于tapestry - Tapestry 5中如何获取资源路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19301034/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com