Sea*_*uit 7 server-side-rendering angular-universal angular
我们严重依赖 Angular i18n 进行本地化。通常我们会使用命令为语言环境创建一个文件夹
ng build some-project --localize
Run Code Online (Sandbox Code Playgroud)
这将创建/dist/some-project/en/和/dist/some-project/de/
npm run prerender 仅在 /dist/some-project/browser/ 中输出一个,忽略 --localize 标志。我的问题是:预渲染选项是否仍处于某种测试阶段?我们现在应该避免它,还是我在这里遗漏了一些东西?
我的理解是我必须为每个区域创建单独的静态页面。
这是我的 angular.json
"prerender": {
"builder": "@nguniversal/builders:prerender",
"options": {
"browserTarget": "offer:build:prod",
"serverTarget": "offer:server:prod",
"routes": [
"/"
]
},
"configurations": {
"prod": {}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这根本没有记录。我花了几天的谷歌搜索/尝试失败才在发布问题后几分钟找到答案。
npm run prerender
Run Code Online (Sandbox Code Playgroud)
执行:
"prerender": {
"builder": "@nguniversal/builders:prerender",
"options": {
"browserTarget": "offer:build:prod",
"serverTarget": "offer:server:prod",
"routes": [
"/"
]
},
"configurations": {
"prod": {}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要添加"localize": ["en", "de"]选项server并browser构建配置
服务器:
"server": {
"builder": "@angular-devkit/build-angular:server",
"options": {
"outputPath": "dist/offer/server",
"main": "projects/offer/server.ts",
"tsConfig": "projects/offer/tsconfig.server.json",
"localize": ["en", "de"]
},
"configurations": {
"prod": {
"sourceMap": false,
"optimization": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
客户:
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/offer/browser",
"index": "projects/offer/src/index.html",
"main": "projects/offer/src/main.ts",
"polyfills": "projects/offer/src/polyfills.ts",
"tsConfig": "projects/offer/tsconfig.app.json",
"localize": ["en", "de"],
"aot": true,
"extractCss": true,
"preserveSymlinks": true,
"stylePreprocessorOptions": {
"includePaths": [
"projects/offer/src"
]
}... etc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |