在 Wicket 7.0.0-M6 中呈现 JavaScriptResourceReference 时在名称前加上范围

Scope prepended to name when rendering JavaScriptResourceReference in Wicket 7.0.0-M6

在应该加载 JS 资源的面板中,我使用以下方法向面板添加行为:

@Override
public void renderHead(Component component, IHeaderResponse response){
    response.render(JavaScriptHeaderItem.forReference(new
        JavaScriptResourceReference(relativeClass,
        WebApplication.get().getServletContext().getContextPath() +
        jsRef)));
}

我在调试中单步执行可以看到name参数是资源url前面的上下文路径,这正是我想要的!但是当网站是 运行 时,面板会查看 localhost:8080/context/scopeURL/context/resourceURL 而不是 localhost:8080/context/resourceURL。 scope不能设置为null,name参数要用什么才能正常访问资源?

类 与我尝试加载的脚本保存在根目录中的单独目录结构中,否则就不会出现这样的问题。我认为适用于 Wicket 6.x 的答案应该适用于此版本。

JavaScriptResourceReference 使用 Class "relativeClass" 作为范围并将其编码在 url.

您需要使用ContextRelativeResourceReference(jsRef)