ASP.NET Core и Angular - SSR - PullRequest
       29

ASP.NET Core и Angular - SSR

0 голосов
/ 08 октября 2018

... и это не работает.: (

Я создаю приложение ASP.NET Core из углового шаблона. Я действительно следовал этим указаниям из этих официальных документов ssr

  1. Настройка ASPNETCORE_Environment переменной
  2. Выполнить dotnet new angular
  3. Изменить Startup.cs и добавить UseSpaPrerendering
  4. Добавить настройки в .angular-cli.json
  5. Добавить tsconfig.server.json
  6. Добавить app.server.module.ts
  7. Добавить main.server.ts
  8. Изменить csproj BuildServerSideRenderer параметр
  9. Выполнить npm i в ClientApp каталоге

В разработке все работает нормально. Но после производственной сборки все работает как в разработке, ssr не работает. Angular продолжает работать на клиенте.

Мои шаги по сборке:

  1. Выполнить dotnet build -c Release -o out

  2. Угловые сборки без ошибок (после сборки в out dir создается 2 угловых сборки - dist и dist-server (* размер 1052 * равен32Kb)

  3. Выполнить dotnet ssr.dll

Эти основные шаги для SSR. Но я изменяю файлы main.ts и main.server.ts, добавляю этиextraProviders для main.ts

{ provide: 'OS', useValue: 'Client' }

для основного.server.ts

{ provide: 'OS', useValue: 'Server' }

и измените home import компонента {Component, Inject} из '@ angular / core';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
})
export class HomeComponent {

  os: string = null;

  constructor(@Inject('OS') public osinject: string) {
    console.log(osinject);
    this.os = osinject;
  }
}

Фактически после сборки и запуска моего проекта,я должен был видеть «Hello Server», но я вижу «Hello Client».

Я пытался создать 2 раза с нуля, попытался запустить в Docker-контейнере, попытался запустить другие проекты с ssr (найти в github).Но все это не работает для меня

> dotnet --version
2.1.403

> node --version
v8.11.3

Что пошло не так, ребята?

Вот мой репо (на всякий случай)

...