Angular 7 Universal(服务器端渲染)[错误参考错误:未定义文档]

时间:2019-03-19 11:54:51

标签: node.js angular heroku ssr

我已经为我的项目实现了SSR,并将其部署到heroku。 现在,当我在heroku logs --tail中启动应用程序时,我正在运行很多东西,这大大降低了性能。大多数事情都是错误:

  

错误ReferenceError:未定义文档

即使我使用的是这样的构造:

    if (isPlatformBrowser(this.platformId)) {
      const overflow = this.isMenuOpened ? 'hidden' : 'auto;';
      this.renderer.setStyle(this.document.body, 'overflow', overflow);
    }

每次我重新加载页面时,这个东西都会重新开始运行。

在我的package.json文件中,有以下命令要运行:

"scripts": {
    "ng": "ng",
    "start": "node dist/server.js",
    "build": "npm run build:server:prod && npm run build:browser:prod",
    "build:server:prod": "ng run oilEnergy:server && webpack --config webpack.server.config.js --progress --colors",
    "build:browser:prod": "ng build --prod"
  }

因此,在部署Heroku时,它将构建服务器和浏览器文件夹,并编译server.js文件,然后由该文件负责运行我的应用程序。

一段时间后,我的应用崩溃了,heroku却显示Application error而不是我的应用。

我不知道为什么会这样。也许以前有人遇到过这个问题?

1 个答案:

答案 0 :(得分:0)

尝试使用SELECT Q.*, A.answer_body AS body, A.answer_id AS answerid, A.ask_id AS askid, A.user_id AS answered_by_user_id FROM $questions_table Q LEFT JOIN $answers_table A on A.ask_id = Q.question_id WHERE Q.question_id = $question_id 而不是document

以下代码对我有用

this.document