角度通用仅以/index.html开头

时间:2018-12-03 07:08:15

标签: angular angular-universal angular7

我已经实现了ssr,并且没有错误,事情是在添加了角度通用性之后,除非我将/index.html添加到URL,否则应用程序将无法加载。然后一切正常,所有溃败都正常!含义:

http://localhost:4000/

保留加载并不会成功,但是

http://localhost:4000/index.html

确实。然后重定向到http://localhost:4000/!但是,如果我在浏览器中手动输入URL或尝试在没有/index.html的情况下打开主页,则会一直加载下去

2 个答案:

答案 0 :(得分:0)

这个问题是经典的

here

所示,移至角度通用始终记住您不能使用
  

窗口,文档…和其他浏览器对象及其方法(如setTimeout)

     

所有DOM API

     

所有其他浏览器特定的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));

    }

  }

}

答案 1 :(得分:0)

我在着陆页主要组件的子组件之一中有了SetInterval,删除了setInterval解决了我的问题。