使用vert.x加载static angular2 web项目

时间:2016-12-06 09:47:55

标签: angular vert.x

我们可以使用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服务器可以有任何其他解决方案?

2 个答案:

答案 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 下查找文件,因此您应该:

  • 将静态资产移至 assets / assets / 文件夹下。
  • 或保留默认的根文件夹,并将静态文件放在 webroot / assets 下。

答案 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");

   });