Развертывание и размещение приложения .net core 2.0 и angular 6 - PullRequest
0 голосов
/ 23 октября 2018

Intro:

В настоящее время у меня есть два отдельных проекта.Одним из решений является ядро ​​.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 (в этомcase Я также редактирую index.html, чтобы он указывал на папку веб-сайта для ресурсов и т. д.), в надежде, что он его найдет (настройка IIS сервера)

enter image description here

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

И теперь все работает, ура!

...