Intro:
目前,我有两个独立的项目。
一种解决方案是针对 .NET core Web API 2.0,另一个项目是 Angular 6 应用程序。
我在将其部署到我的托管提供商( asphostsportal )时遇到问题。
它由一个根文件夹 httpdocs 组成,当我发布 API 时,我会复制发布文件夹的内容。
通过 FTP 传输文件后,我通过发送请求并获取响应来确认我的 API 是否正常工作。
现在我需要发布我的角度项目。
最简单的方法是使用 ng build,我在 dist 中得到一些文件夹。
Problem:
如果我将 dist 内文件夹的内容传输到服务器上的根文件夹 httpdocs 它找不到任何页面,但 API 仍然有效。
如果我将整个文件夹传输到 httpdocs 中并设置服务器主机设置以定义该文件夹的文档根:
它会找到index.html并显示我的登陆页面。
但是这样 API 将无法工作。
如果我保持原样并将文档根更改回httpdocs(API文件所在的位置),但将index.html从httpdocs/website推送到httpdocs(在这种情况下,我还编辑index.html以指向资源的网站文件夹等)希望它能找到它(服务器IIS设置)
事实并非如此。之后我的 API 再次开始工作。但是,找不到着陆页。
仅供参考,我没有任何与静态文件有关的额外的startup.cs代码行,我在API项目上的发布命令也没有创建wwwroot文件夹(就像这里提到的 https://stackoverflow.com/a/49126167/6206185)
编辑(解决方案):
好的,所以我开始工作了。
1)我在API的Startup.cs的Configure方法中添加了2行代码
app.UseDefaultFiles();
app.UseStaticFiles(); // For the wwwroot folder
哪里根据“使用 UseDefaultFiles,请求文件夹搜索:index.html”
2)我手动添加了 wwwroot 文件夹,由于某种原因,在为我的 API 项目发布命令时没有生成该文件夹。
3)在该文件夹中,我复制了 dist/website 角度发布文件的所有内容
现在它可以工作了,干杯!