4

我有一个 GWT 应用程序,当我在运行应用程序后在本地部署主页时是 localhost:8888/myapp.html 但是当我们将它部署到服务器时,在运行其主页的应用程序之后是 107.20.239.198:8080/myapp/myapp.html .

现在我的应用程序的所有相关路径都失败了。我需要确切路径的地方,我无法得到。因为现在路径不同了。例如,当我在应用程序中单击特定小部件时 -> 它重定向到路径 '/# + "place no.1" + "place no.2" '

但是现在它在服务器上部署时会失败,因为它现在需要路径 -> '/myapp/# + "place no.1" + "place no.2" '。

那么我怎样才能使它通用,以便我可以处理这两个条件。

谁能帮我这个 ?

PS我希望我能够很好地表达我的问题,否则你可以评论它,以便我可以更好地解释它。

4

3 回答 3

5

从您上面提到的本地 url,看起来您正在AppEngine的服务器上运行它。Tomcat最好先在本地部署应用程序。并确保一切正常。这些是您可以用来获取relative/absolute urls应用程序启动时间的几种方法。

GWT.getHostPageBaseURL(); GWT.getModuleBaseURL(); GWT.getModuleName();

希望能帮助到你。

于 2012-08-31T05:16:23.823 回答
1

您应该在应用程序中使用相对于您的上下文的相对路径。使用request.getContextPath()您将能够获得正确的上下文路径。但是,如果您将在代码中使用“/”,您将始终引用您的上下文路径,无论上下文是什么。因此,要创建指向内部页面的链接,您将使用 /internal.html。在您的本地计算机上将转换为 localhost:8888/internal.html,但在服务器上它将是:107.20.239.198:8080/myapp/internal.html。

于 2012-08-31T05:04:06.173 回答
1

正如@Anuj Kulkarni 所提到的,你真的应该使用相对路径,否则你总是会遇到这些问题。但我有 1 个特殊问题,我无法做到这一点。因此,如果您愿意,可以使用:

if (!GWT.isProdMode())

在这里,您可以为您的开发环境和部署定义不同的 url。但是,如果您在代码中多次使用它,那么这确实意味着您做错了什么。

于 2012-08-31T15:29:51.710 回答