我正在尝试使GWT应用程序在portlet中工作。 Portlet是页面的一部分,它在上下文中形成,而不是整个页面。
这使路径无效。
例如,和对象
Image logo = new Image("images/online.png");
呈现为
<img class="gwt-Image" src="images/online.png">
此路径在portlet上下文中是正确的,但在根上下文中是错误的。
是否可以让GWT从getContextPath()开始寻找路径?如果可以在主Javascrip插入之前将一些参数添加到HTML代码中,那就太棒了。
答案 0 :(得分:3)
使用GWT.getModuleBaseURL()
作为网址的基础(可能使用..
向上移动); e.g。
Image logo = new Image(GWT.getModuleBaseURL() + "../images/online.png");
根据经验,请始终将您的网址设为GWT.getHostPageBaseURL()
或GWT.getModuleBaseURL()
。
您当然也可以使用ClientBundle
和ImageResource
与部署无关。
答案 1 :(得分:0)
您必须将GWT加载器脚本放在要从中加载其他GWT文件的位置。 GWT模块URL由加载器脚本的“src”属性确定。因此,如果需要在静态文件路径中添加前缀 - 将前缀添加到加载器脚本中:
<script src="prefix/xxx.yyy.Module.js" type="javascript/text"/>
GWT将从此脚本标记
中指定的URL加载所有文件答案 2 :(得分:0)
您还可以使用Window.Location.createUrlBuilder();
为您提供包含当前网址的UrlBuilder,您可以通过urlBuilder.setParameter(..)
,urlBuilder.setPath(..)
,urlBuilder.setHost(..)
等更改片段。