使用 Undertow 服务 AngularJS

Posted

技术标签:

【中文标题】使用 Undertow 服务 AngularJS【英文标题】:Use Undertow to serve AngularJS 【发布时间】:2014-09-04 04:44:25 【问题描述】:

我想使用 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();

【问题讨论】:

您也应该禁用目录列表。 【参考方案1】:

您也可以使用 ClassPathResourceManager。

ResourceManager rm = new ClassPathResourceManager(getClass().getClassLoader(), "dist");
ResourceHandler handler = new ResourceHandler(rm);

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于使用 Undertow 服务 AngularJS的主要内容,如果未能解决你的问题,请参考以下文章

开微服务项目tomcat更换成undertow

如何使用 Apache 作为 WebSockets 的反向代理,以 Undertow 作为服务器

Undertow:使用现有的 Servlet 实例

Undertow java.util.logging:如何使用 java util logging 在运行时更改 undertow 服务器的日志记录级别

Springboot: Tomcat很好我选Undertow

SpringBoot2使用Undertow来提高应用性能(spring-boot-starter-undertow)