在 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)
在应该加载 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)