угловой универсальный, только открывающийся с /index.html - PullRequest
0 голосов
/ 03 декабря 2018

Я реализовал ssr , и в нем нет ошибок, дело в том, что после добавления angular universal приложение не будет загружаться, если я не добавлю /index.html в URL.тогда все работает и все маршруты работают нормально!значение:

http://localhost:4000/

продолжает загружаться и не удается, но

http://localhost:4000/index.html

делает.а затем перенаправляет на http://localhost:4000/!но если я вручную ввожу URL в браузере или пытаюсь открыть домашнюю страницу без /index.html, она продолжает загружаться вечно

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

У меня был SetInterval в одном из моих дочерних компонентов основного компонента целевой страницы, удаление этого setInterval решило мою проблему.

0 голосов
/ 03 декабря 2018

Проблема была классической

при переходе на угловую универсальность всегда помните, что вы не можете использовать, как сказано здесь

окно, документ… и другиеобъекты браузера и их методы (например, setTimeout)

все API-интерфейсы DOM

все другие специфичные для браузера API, такие как localStorage, IndexedDB…

, проблема в том, что в большинствеЕсли вы не столкнетесь с какой-либо ошибкой или предупреждением об этом!

, и лучшим решением будет проверить платформу, а затем использовать ее там, где вам нужно, как показано ниже

import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';

@Injectable()
export class LocalStorage {

  constructor(@Inject(PLATFORM_ID) protected platformId: Object) {}

  setItem(key: string, value: any) {

    if (isPlatformBrowser(this.platformId)) {

      localStorage.setItem(key, JSON.stringify(value));

    }

  }

}
...