我们可以使用vert.x加载静态网页,方法是将index.html放在assets文件夹中,并在路由器中提供其路径
router.route("/assets/*").handler(StaticHandler.create("assets"));
如果我将一个Angular2构建项目放在assets文件夹中并尝试加载index.html,浏览器无法理解Angular2,因为浏览器中没有加载任何依赖项。
据我所知,我们可以使用lite-server或node来运行Angular2项目。
有没有办法使用vert.x加载Angular2项目,还是没有Web服务器可以有任何其他解决方案?
答案 0 :(得分:2)
如 Vert.x 文档中所述,
对静态处理程序处理的路径的任何请求都将导致 从文件系统上的目录或从文件系统中的目录提供的文件 类路径。默认的静态文件目录是webroot,但这可以 配置。
您已将默认网络根文件夹配置为 资产 对路径 / assets / 的任何请求将导致 assets / assets / 下的文件也按照官方文档的说明提供:
例如,如果有路径/static/css/mystyles.css的请求 静态服务器将在目录中查找文件 根目录/静态/ CSS / mystyle.css。
E.g。带有 /assets/js/angular2.js 路径的请求将指示服务器在 assets / assets / js / angular2.js 下查找文件,因此您应该:
答案 1 :(得分:1)
附加组件:任何偶然发现此帖子的人。 下面的代码片段用于处理浏览器上的刷新。
Stack - Vertx提供角度2文件。
// Create a router endpoint for the static content.
basically route any files - js, css, jpg etc
router.route("/*")
.handler(StaticHandler.create("webroot").setCachingEnabled(false));
// so anything else re route to home page
router.route("/*").handler(rc -> {
logger.info("For refresh handling");
rc.response().sendFile("webroot/index.html");
});