2016-12-06 37 views
2

如果我把一个Angular2打造我们可以加载使用vert.x通过把index.html的在资产文件夹,并在路由器载荷静angular2 web项目

router.route("/assets/*").handler(StaticHandler.create("assets")); 

给予其路径静态网页项目在资产文件夹内并尝试加载index.html,浏览器无法理解Angular2,因为浏览器中没有加载任何依赖项。

据我所知,我们可以使用lite-server或node来运行Angular2项目。

有什么办法可以使用vert.x来加载Angular2项目,或者有没有其他解决方案可能没有web服务器?

回答

2

Vert.x文档指出,

由静态处理程序处理路径的任何请求都将导致从文件系统或从 类路径的目录被服务 文件。默认的静态文件目录是webroot,但可以配置 。

正如你所配置的默认Web根目录是资产到路径的任何请求/资产/将导致下资产/资产/将担任到文件也可以通过官方文档说明:

例如,如果有请求使用path /static/css/mystyles.css 静态服务将在目录 webroot/static/css/mystyle.css中查找文件。

例如,与通路请求/assets/js/angular2.js将指示服务器查找文件下资产/资产/ JS/angular2.js因此,你应该:

  • 无论是移动你的静资产资产/资产/文件夹下。
  • 或者保留默认的根文件夹,并将您的静态文件置于webroot/assets之下。
0

附加组件:适用于任何发现此帖的人。 下面的代码片段来处理浏览器刷新。

堆栈 - 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"); 

    });