Intro:
В настоящее время у меня есть два отдельных проекта.Одним из решений является ядро .NET Web API 2.0, а другим проектом является приложение Angular 6.
У меня проблема с развертыванием этого приложения у моего хостинг-провайдера (asphostsportal).Он состоит из одной корневой папки httpdocs, куда при публикации API я копирую содержимое папки публикации.
После передачи файлов по FTP я подтверждаю, что мой API работает, отправив запрос и получив ответ.
Теперь мне нужно опубликовать свой угловой проект.Самый простой способ сделать это с помощью ng build, и я получаю некоторую папку в dist.
Проблема:
Если я перенесу содержимое папки внутри dist в мой кореньпапка httpdocs на сервере. Невозможно найти страницу, но API все еще работает.
Если я перенесу всю папку в httpdocs и задаю настройку хоста сервера, чтобы определить корень документа для этой папки:
![enter image description here](https://i.stack.imgur.com/J3OBJ.png)
Он найдет index.html и покажет мне мою целевую страницу.Однако тогда API не будет работать.
Если я оставлю его как есть и изменим корень документа обратно на httpdocs (где находятся файлы API), но перенесу index.html с httpdocs / website на httpdocs (в этомcase Я также редактирую index.html, чтобы он указывал на папку веб-сайта для ресурсов и т. д.), в надежде, что он его найдет (настройка IIS сервера)
![enter image description here](https://i.stack.imgur.com/FTWKb.png)
Itне делает.После этого мой API снова начинает работать.Однако целевая страница не найдена.
Только к вашему сведению. У меня нет лишних строк кода startup.cs, которые имеют какое-либо отношение к статическим файлам, и моя команда публикации в проекте API не создала папку wwwroot ( как упомянуто здесь )
Редактировать (решение):
Хорошо, так что я получил его на работу.
1) Ядобавил 2 строки кода в метод Configure метода Startup.cs в моем API
app.UseDefaultFiles();
app.UseStaticFiles(); // For the wwwroot folder
Где согласно MSDN"С UseDefaultFiles запросы к папке ищут: index.html"
2) Я вручную добавил папку wwwroot, которая по какой-то причине не генерировалась при публикации команды для моего проекта API.3) В эту папку я скопировал все содержимое моего дистрибутивного файла dist / website angular
И теперь все работает, ура!