我目前已将我的服务器从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桌面。
有任何建议,设计方法或外形吗?
答案 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等......但我认为这已经太多了。