使用 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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Apache 作为 WebSockets 的反向代理,以 Undertow 作为服务器
Undertow java.util.logging:如何使用 java util logging 在运行时更改 undertow 服务器的日志记录级别