假设我想把 Spartacus 的 url 后面增加 custom url 访问,比如以前通过 https://spartacus-demo.eastus.cloudapp.azure.com/electronics-spa/ 访问,现在通过 https://spartacus-demo.eastus.cloudapp.azure.com/electronics-spa/jerry 访问。
在 CSR 即客户端渲染模式下,在 app.module.ts 里增加如下代码:
{ provide: APP_BASE_HREF, useValue: /jerry/ }],
这段代码是在 Angular 中用于配置依赖注入(Dependency Injection)的提供者(Provider)的配置。
provide: APP_BASE_HREF:provide 是提供者配置中的关键字,指定要提供的依赖项。APP_BASE_HREF 是 Angular 提供的一个令牌(token),用于表示应用的基本 URL 路径。
useValue: /jerry/:useValue 是提供者配置中的关键字,指定要提供的依赖项的具体值。在这种情况下,它指定了 APP_BASE_HREF 的具体值为 /jerry/。这表示应用的基本 URL 路径为 /jerry/,即应用的根路径是 /jerry/。
通过这段代码的配置,可以在 Angular 中使用依赖注入方式获取 APP_BASE_HREF 的值,以便在应用中使用该值来构建 URL。例如,在路由配置中使用 APP_BASE_HREF 可以帮助正确地生成路由链接。
同时在 angular.json 文件里,增加如下配置:
"build": { "builder": "@angular-devkit/build-angular:browser", "options": { "deployUrl": "/jerry/",
这段代码来自 angular.json 文件的 build 配置部分。它的作用是指定 Angular 应用在构建过程中的选项,具体解释如下:
"builder": "@angular-devkit/build-angular:browser":这是构建过程中使用的构建器(builder)。@angular-devkit/build-angular:browser 是 Angular 提供的默认构建器,用于构建浏览器端的应用程序。
"options":这是构建选项的配置部分,包含了一系列可配置的选项。
"deployUrl": "/jerry/":deployUrl 是一个选项,用于指定构建后的应用在部署时的基本 URL 路径。在这个例子中,/jerry/ 是指应用的部署路径为 /jerry/。这意味着构建后的应用将在 /jerry/ 路径下部署。
通过设置 deployUrl,可以确保构建后的应用在部署时能够正确地加载资源文件(如 CSS、JavaScript 等)和执行路由导航等操作。这对于将应用部署到特定的子路径或将应用托管在特定的服务器上是非常有用的。