如何控制Angular决定渲染的路线?

问题描述

我正在尝试使用ng run [myAppName]:prerender预渲染我的角度应用程序。我只想预渲染/的内容,因为其他路由不需要预渲染。尽管它找到了一种方法来预渲染我的angular.json配置中未包含的其他路由。

Angular.json

    "prerender": {
      "builder": "@nguniversal/builders:prerender","options": {
        "browserTarget": "[myApp]:build:production","serverTarget": "[myApp]:server:production","routes": [
          "/" // <--- One route listed...
        ]
      },"configurations": {
        "production": {}
      }
    }

通过上面的配置,它仍会渲染其他16条路由(例如/ my-other-route)

有没有办法我只能呈现/页面?

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.901.10
@angular-devkit/build-angular     0.901.10
@angular-devkit/build-optimizer   0.901.10
@angular-devkit/build-webpack     0.901.10
@angular-devkit/core              9.1.10
@angular-devkit/schematics        9.1.10
@angular/cdk                      9.2.4
@angular/cli                      9.1.10
@angular/fire                     6.0.2
@angular/google-maps              10.0.2
@angular/material                 9.2.4
@angular/platform-server          9.1.12
@ngtools/webpack                  9.1.10
@nguniversal/builders             9.1.1
@nguniversal/common               9.1.1
@nguniversal/express-engine       9.1.1
@schematics/angular               9.1.10
@schematics/update                0.901.10
rxjs                              6.5.5
typescript                        3.8.3
webpack                           4.42.0

解决方法

尝试更新到 >= Angular 11.1 并将 "guessRoutes": false 添加到 angular.json。

...
"routes": [
    "/"
],"guessRoutes": false

见:https://github.com/angular/universal/blob/3e0efbeb2ad490caead49d53809af97ace6e03a7/modules/builders/src/prerender/schema.json#L30:L34

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...