4

我想使用 Undertow 作为一个简单的 Web 服务器来为 AngularJS 应用程序提供服务。AngularJS 应用程序所需的其余服务由 Apache Camel 提供,因此我只需要使用 Undertow 为 Angular 应用程序提供服务。

我已阅读文档但无法使其正常工作,关于我做错了什么的任何想法?

这是我现在用于启动 Underow 服务器的代码

Undertow server = Undertow.builder()
            .addHttpListener(8080, "localhost")
            .setHandler(resource(new FileResourceManager(new File("../dist"),10))
                    .addWelcomeFiles("../dist/index.html")
                    .setDirectoryListingEnabled(true))
            .build();
    server.start();
4

2 回答 2

2

File("../dist")是问题所在。使用绝对路径或至少一个不带“..”的路径,那么它应该可以工作。

(Undertow 包含一个健全性检查,将资源的计算文件路径与其规范路径进行比较,该路径在“.”和“..”处中断。)

于 2014-07-17T17:25:44.770 回答
0

您还可以使用 ClassPathResourceManager。

ResourceManager rm = new ClassPathResourceManager(getClass().getClassLoader(), "dist");
ResourceHandler handler = new ResourceHandler(rm);
于 2017-07-24T19:23:58.240 回答