Веб-приложение Azure wwwroot дублирует при публикации - PullRequest
0 голосов
/ 07 июня 2018

Шаги:

  1. создать пустое веб-приложение в Azure
  2. создать пустой проект .NET Core Web API в VS2017
  3. Этот проект будет содержать папку wwwroot.После настройки моего приложения angular 5 для встраивания в wwwwroot / dist я публикую из VS веб-приложение Azure
  4. После публикации сайт не загружается на Azure.В настройках веб-приложения корень приложения установлен на site\wwwroot Azure WebApp Application Settings

  5. После ftping (публикации) на веб-сервере я вижу текущий файлструктура для приложения /site/wwwroot/wwwroot Так что это странно.wwwroot уже вложен в себя.

  6. Чтобы загрузить веб-сайт, я просто обновляю настройки приложения, чтобы указать /site/wwwroot/wwwroot.

Отлично.Оно работает.Однако, если мне нужно вернуться и опубликовать новое изменение на сайте, структура папок на веб-сервере изменяется в ответ на обновленные настройки приложения!Теперь сайт не будет загружаться, и новая файловая система будет site\wwwroot\wwwroot\wwwroot. Я могу снова обновить параметры приложения на Azure и установить этот путь в качестве корневого, и снова сайт будет работать.Но теперь у меня есть две копии веб-сайта на сервере, и я не могу помочь, но это не «лучшая практика».Не говоря уже о том, что если я снова опубликую сайт, файловая система просто добавит еще один wwwroot и сломает сайт.

Что здесь происходит?Как я могу опубликовать свой сайт с правильной структурой файловой системы.Когда сайт выглядит так, мне приходится управлять несколькими web.config с, и мне сложно понять, как заставить работать угловой маршрутизатор.Все это делается с помощью начальных предустановок Microsoft (веб-приложение и приложение webapi).

Мне кажется, что в идеале весь сайт должен находиться под wwwroot с одним web.config

Это так??Спасибо за чтение.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 09 июня 2018

Если вы хотите использовать wwwroot в качестве статического файла, вам следует немного изменить свой файл Startup.cs.

Попробуйте добавить следующий фрагмент кода в метод Configure() вфайл Startup.cs.

        app.UseDefaultFiles(new DefaultFilesOptions() {
            DefaultFileNames = new List<string>() { "index.html" }
        });
        app.UseStaticFiles();

Вот полный пример кода:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseDefaultFiles(new DefaultFilesOptions() {
            DefaultFileNames = new List<string>() { "index.html" }
        });
        app.UseStaticFiles();

        app.UseMvc();
    }

Сейчас вы должны без проблем развернуть свое веб-приложение в Azure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...