0

我有现有的角度项目。我需要在我现有的 Angular 项目上应用 ssr。我正在关注这个

  1. ng add @nguniversal/express-engine此命令按预期工作。

  2. npm run dev:ssr运行此命令并在给定链接上打开浏览器后,出现以下错误

    找不到翻译文件:../../assets/translate/Pages/header/en.json

    找不到翻译文件:../../assets/translate/Pages/footer/en.json

    找不到翻译文件:../../assets/translate/Pages/home/en.json

    错误 ReferenceError: $ is not defined at HeaderComponent.ngOnInit (mypro\dist\pro\server\main.js:228895:9) ....

    错误 ReferenceError: HomeComponent.getUpcomingEvents (mypro\dist\pro\server\main.js:229576:29) 中未定义 FormData ....

    错误 ReferenceError: localStorage 未 在 AuthService.isLoggedIn 中定义 (mypro\dist\pro\server\main.js:240521:9) ....

    由于选择器错误而跳过了 1 条规则: .custom-file-input:lang(en)~.custom-file-label -> unmatched pseudo-class :lang

    由于选择器错误而跳过了 1 条规则: .custom-file-input:lang(en)~.custom-file-label -> unmatched pseudo-class :lang

我尝试了不同的方法,但每次都会遇到相同的错误。我不知道应该怎么做才能在现有项目上应用 SSR。如果我创建新的角度项目并应用相同的步骤,它可以工作,但它不适用于现有项目。

我应该如何消除这些错误?

请帮助和指导。

4

1 回答 1

0

assets:听起来您正在使用相对路径来检索翻译文件,尝试使用绝对路径

$更有可能是由于 JQuery 的使用(这是摆脱它的好机会)

localstorage/FormData:使用 SSR,您的应用程序在节点环境中呈现,无需浏览器。Web Storage/FormData API 在浏览器之外不可用。根据您的使用情况,您可以在 Google 上找到本地存储的相关解决方案(因为问题中没有代码)。对于表单数据:

Install form-data via npm
npm install form-data

then import form-data to your component or service
import * as FormData from 'form-data';
于 2022-01-06T14:12:20.137 回答