Java 当使用play作为代理服务器时,如何重写绝对路径?

Java 当使用play作为代理服务器时,如何重写绝对路径?,java,playframework,Java,Playframework,我正在尝试使用PlayJava-2.3作为代理服务器公开公开来自内部HTTP服务器的内容 到目前为止,我设法获得了我想要显示的大部分内容,但不幸的是,一些样式表和脚本是使用绝对路径引用的,当然,我只得到了404 是否有解决方法,或者我应该要求其他开发人员更改这些文件的路径 我的路由文件如下所示: GET /proxy/*path controllers.gateway.TestProxy.index(path) 我使用以下方法转发内容:

我正在尝试使用PlayJava-2.3作为代理服务器公开公开来自内部HTTP服务器的内容

到目前为止,我设法获得了我想要显示的大部分内容,但不幸的是,一些样式表和脚本是使用绝对路径引用的,当然,我只得到了404

是否有解决方法,或者我应该要求其他开发人员更改这些文件的路径

我的路由文件如下所示:

GET     /proxy/*path                          controllers.gateway.TestProxy.index(path)
我使用以下方法转发内容:

public static Promise<Result> index(String path) {
    final Promise<Result> resultPromise = WS.url("http://10.1.0.10:18406/"+path).get().map(
            new Function<WSResponse, Result>() {
                public Result apply(WSResponse response) {
                    response().setContentType("text/html");
                    return ok(response.getBody());
                }
            }
    );
    return resultPromise;
}

任何帮助都将不胜感激,
谢谢。

最后,我决定寻求更实用的解决方案: 我要求其他开发人员更改所有ajax查询并使用相同的URI模式

通过这种方式,我在路由文件中创建了几个不同的路由,这取决于我必须转发的资源/呼叫的类型:

我有点像:

GET     /                                           controllers.gateway.TestProxy.index()

对于html页面和

GET     /$file<.*\.js$>                       controllers.gateway.TestProxy.js(file)
对于js文件。 除了响应内容类型(当然是text/javascript)之外,控制器与上面的控制器相同

关于AJAX查询,它们现在都在相同的路径下,我遵循完全相同的机制


谢谢@m-z的时间。

你能举一个你想重写的绝对路径的例子吗?嘿,@m-z我编辑了这个问题。仍然不清楚。。应该/查询到http://10.1.0.10:18406/query ? 您是否在询问如何处理不以/proxy开头的路由?我不知道你希望它有什么样的行为。
$.ajax({
  url: "/queryall",
  processData: false,
  data: xmlDocument
});
GET     /                                           controllers.gateway.TestProxy.index()
public static Promise<Result> index() {
    final Promise<Result> resultPromise = WS.url("http://10.1.0.10:18406/").get().map(
            new Function<WSResponse, Result>() {
                public Result apply(WSResponse response) {
                        response().setContentType("text/html");
                    return ok(response.getBody());
                }
            }
    );
    return resultPromise;
}
GET     /$file<.*\.js$>                       controllers.gateway.TestProxy.js(file)