Angular5 服务器端渲染角度4/5问题

Angular5 服务器端渲染角度4/5问题,angular5,server-side-rendering,Angular5,Server Side Rendering,我正在研究angular 5。我的应用程序已经完成,创建了一个构建并部署在服务器上,运行良好。 但我对搜索引擎优化有一个问题,那就是页面在谷歌中没有索引。我使用了服务器端渲染,出现以下错误: F:\universal-demo-v5>node dist/server.js F:\universal-demo-v5\dist\server.js:111436 })(window, document, 'Hammer'); ^ ReferenceError: window is not

我正在研究angular 5。我的应用程序已经完成,创建了一个构建并部署在服务器上,运行良好。
但我对搜索引擎优化有一个问题,那就是页面在谷歌中没有索引。我使用了服务器端渲染,出现以下错误:

F:\universal-demo-v5>node dist/server.js F:\universal-demo-v5\dist\server.js:111436 })(window, document, 'Hammer');    ^ ReferenceError: window is not defined
    at Object.defineProperty.value (F:\universal-demo-v5\dist\server.js:111436:4)
    at __webpack_require__ (F:\universal-demo-v5\dist\server.js:20:30)
    at Object.hammerjs (F:\universal-demo-v5\dist\server.js:139493:18)
    at __webpack_require__ (F:\universal-demo-v5\dist\server.js:128177:30)
    at Object.../../../../ngx-carousel/src/ngx-carousel/ngx-carousel.component.js (F:\universal-demo-v5\dist\server.js:138668:67)
    at __webpack_require__ (F:\universal-demo-v5\dist\server.js:128177:30)
    at Object.../../../../ngx-carousel/src/ngx-carousel/ngx-carousel.component.ngfactory.js (F:\universal-demo-v5\dist\server.js:139254:10)
    at __webpack_require__ (F:\universal-demo-v5\dist\server.js:128177:30)
    at Object.../../../../../src/app/components/home/home.component.ngfactory.js (F:\universal-demo-v5\dist\server.js:129216:11)
    at __webpack_require__ (F:\universal-demo-v5\dist\server.js:128177:30)

现在已经很晚了,但也许这会对你或将来的某个人有所帮助。 使用Angular Universal时会发生这种情况,这是因为服务器端渲染没有“窗口”可供使用,只有浏览器有

因此,当执行此代码时,服务器无法找到不存在的窗口。您可以通过删除hammerjs(这不是必需的,只是为material 2和类似的UI增加了生活质量)来解决这个问题

或者您可以在此处尝试此修复:


这涉及到在server.ts代码中定义窗口,以便在运行时正常工作。

您是否检查了
window
是否已定义?错误表示它未定义,所以第一步应该检查窗口是否未定义以及原因。