Angular SSR, динамическая страница не загружается — статус 504

#javascript #node.js #angular #typescript

#JavaScript #node.js #angular #typescript

Вопрос:

Код: http://github.com/dbots-co/website

Прямое подключение к динамическому маршруту (панель мониторинга, страница бота), похоже, не работает. Однако прямое подключение к документам работает.

Это происходит только при использовании Angular 10 Universal SSR.

Не работает: https://dbots.co/bots/774811448576573480

Работает: https://dbots.co/docs/get-started

bot-page.component.ts:

 async ngOnInit() {
    await this.service.init();

    this.user = this.service.getBot(this.id);
    this.bot = this.service.getSavedBot(this.id);
    if (!this.user || !this.bot)
      return this.router.navigate(['']);

    this.seo.setTags({
      description: this.bot.listing.overview,
      titlePrefix: this.user.username,
      titleSuffix: 'DBots',
      url: `bots/${this.id}`
    });

    this.analytics.botPageView({ botId: this.user.id });
    
    this.themeService.setNavbarBackground('var(--background-secondary)');
    document
      .querySelector('.navbar')
      .setAttribute('style', `margin-bottom: -5px;`);
  }
 

app-routing.module.ts:

 const routes: Routes = [
    ...
    { path: 'bots/:id', component: BotPageComponent },
    ...
];
 

Комментарии:

1. Вы main наверняка настроены неправильно: github.com/DBots-co/Website/blob/stable/angular.json#L135 так и должно быть srcmain.server.ts . Это ошибка в схеме, которая еще не исправлена

2. Я также столкнулся с тем, что в некоторых случаях вы не можете отправлять веб-запросы во время SSR. В IIS Express это отлично работало для меня, но при развертывании в установке Plesk SSR нарушается, и вам приходится передавать данные в приложение angular через params.data со стороны сервера