... и это не работает.: (
Я создаю приложение ASP.NET Core из углового шаблона. Я действительно следовал этим указаниям из этих официальных документов ssr
- Настройка
ASPNETCORE_Environment
переменной - Выполнить
dotnet new angular
- Изменить
Startup.cs
и добавить UseSpaPrerendering
- Добавить настройки в
.angular-cli.json
- Добавить
tsconfig.server.json
- Добавить
app.server.module.ts
- Добавить
main.server.ts
- Изменить csproj
BuildServerSideRenderer
параметр - Выполнить
npm i
в ClientApp
каталоге
В разработке все работает нормально. Но после производственной сборки все работает как в разработке, ssr не работает. Angular продолжает работать на клиенте.
Мои шаги по сборке:
Выполнить dotnet build -c Release -o out
Угловые сборки без ошибок (после сборки в out
dir создается 2 угловых сборки - dist
и dist-server
(* размер 1052 * равен32Kb)
Выполнить 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
Что пошло не так, ребята?
Вот мой репо (на всякий случай)