部署并托管.net core 2.0和angular 6应用

时间:2018-10-23 18:35:57

标签: angular6 hosting asp.net-core-2.0 web-deployment

简介:

目前,我有两个单独的项目。 一个解决方案是针对.NET核心Web API 2.0,另一个项目是Angular 6应用。

我在将其部署到托管服务提供商(asphostsportal)时遇到问题。 它由一个根文件夹httpdocs组成,在发布API时,我在其中复制发布文件夹的内容。

通过FTP传输文件后,我可以通过发送请求并获得响应来确认我的API正常工作。

现在我需要发布我的角度项目。 最简单的方法是使用ng build,然后在dist中找到一些文件夹。

问题:

如果我将dist内文件夹的内容传输到服务器上的根文件夹httpdocs,则找不到任何页面,但API仍然有效。

如果我将整个文件夹转移到httpdocs内,并设置服务器主机设置以将文档根目录定义到该文件夹​​:

enter image description here

它将找到index.html并显示我的登录页面。 但是,API将不起作用。

如果我将其保留不变,并将文档根目录更改回httpdocs(API文件所在的位置),但将index.html从httpdocs / website推送到httpdocs(在这种情况下,我还编辑index.html以指向网站)文件夹中的资源等),希望它会找到它(服务器IIS设置)

enter image description here

不是。之后,我的API再次开始工作。但是,找不到登录页面。

仅供参考,我没有任何多余的startup.cs代码行,这些行与静态文件有任何关系,我在API项目上的发布命令也没有创建wwwroot文件夹(like mentioned here

编辑(解决方案):

好的,所以我知道了。

1)我在API的Startup.cs的Configure方法中添加了两行代码

  app.UseDefaultFiles();
  app.UseStaticFiles(); // For the wwwroot folder

根据MSDN “使用UseDefaultFiles,对文件夹的请求搜索:index.html”

2)我手动添加了wwwroot文件夹,由于某些原因,该文件夹未在发布API项目的命令时生成。 3)在该文件夹中,我复制了dist /网站角度发布文件的所有内容

现在可以了,加油!

0 个答案:

没有答案