GWT获取应用程序的路径

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

现在我的应用程序失败的所有相关路径。 我需要确切路径的地方,我无法得到。 现在路径不同了。 例如,当我点击我的应用程序中的特定小部件时 – >它重定向到路径’/#+’地方no.1“+”地方2号“’

但现在它在服务器上部署时失败,因为它现在需要路径 – >’/ myapp /#+’地方no.1“+”地方2号“’。

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

谁能帮我这个 ?

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

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

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

希望能帮助到你。

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

正如@Anuj Kulkarni所提到的,你应该使用相对路径,否则你将永远遇到这些问题。 但我有一个特别的问题,我不能这样做。 所以,如果你愿意,你可以使用:

 if (!GWT.isProdMode()) 

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