如何在使用公用文件夹的Webhost上组织Angular 2文件?

时间:2017-01-14 22:09:18

标签: javascript node.js angular

我目前已将我的服务器从Shared VPS更新为专用服务器,因此我可以开始使用Node.js环境并获得对我自己服务器的root访问权。

一切都很好,我有git克隆了angular / quickstart.git项目进行练习。

我的网络服务要求我为我的域使用公共文件夹,这很好,但只需将所有文件下载到我的根目录,如下所示:

site.com/public (pre-existing folder on server)
site.com/app
site.com/package.json
site.com/index.html
site.com/systemjs.config.js
site.com/tsconfig.json

其他文件中。

我能够" npm start"该项目,但我看不到任何文件,因为它们都是root访问权限,并且不在" public"文件夹中。

如果我将文件下载到公用文件夹,它看起来像这样:

site.com/public/app
site.com/public/package.json
site.com/public/index.html
site.com/public/systemjs.config.js
site.com/public/tsconfig.json

所有这些文件仍然暴露在外。

此时我到底应该做些什么?

我知道如何安装快递并设置某些文件夹来模仿" public"文件夹,但不会要求我运行内部" app / app.js"来自Angular 2的文件以及" app.js"来自根Express.js安装的文件。

这看起来应该比它简单得多,但是我第一次在生产服务器上练习,而不是我的Angular 2桌面。

有任何建议,设计方法或外形吗?

2 个答案:

答案 0 :(得分:1)

我猜你在搞乱这里。 AngularJs是"客户端"和NodeJ用于构建应用程序。如果你想拥有一个Express服务器端,那么这是不同的。

如果使用angular CLI,则会在dist文件夹中生成Client,然后只将其中的文件复制到Public文件夹。然后,Express App将在服务器上任何位置运行的NodeJs Server中运行。

答案 1 :(得分:1)

问题是angular/quickstart.git项目仅为非常简单的演示而创建,不应该像生产服务器那样用于生产服务器,它只适用于localhost服务器。

一个好的和流行的解决方案是使用angular CLI,这将生成/ dist文件夹中的所有文件,您可以让您的节点在该专用服务器上表达并使用/ dist作为/公众

另一个故事是你可以在云服务器上拥有Continuous Integration,例如heroku或azure等......但我认为这已经太多了。