GWT:是否可以将基本URL设置为参数?

时间:2011-10-31 14:32:59

标签: url gwt base

我正在尝试使GWT应用程序在portlet中工作。 Portlet是页面的一部分,它在上下文中形成,而不是整个页面。

这使路径无效。

例如,和对象

Image logo = new Image("images/online.png");

呈现为

<img class="gwt-Image" src="images/online.png">

此路径在portlet上下文中是正确的,但在根上下文中是错误的。

是否可以让GWT从getContextPath()开始寻找路径?如果可以在主Javascrip插入之前将一些参数添加到HTML代码中,那就太棒了。

3 个答案:

答案 0 :(得分:3)

使用GWT.getModuleBaseURL()作为网址的基础(可能使用..向上移动); e.g。

Image logo = new Image(GWT.getModuleBaseURL() + "../images/online.png");

根据经验,请始终将您的网址设为GWT.getHostPageBaseURL()GWT.getModuleBaseURL()

您当然也可以使用ClientBundleImageResource与部署无关。

答案 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(..)等更改片段。