日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

angular 构建可以动态挂载的配置服务

發(fā)布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 angular 构建可以动态挂载的配置服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

angular 構建可以動態(tài)掛載的配置服務

Intro

在 angular 中可以指定 environment 來區(qū)分不同環(huán)境下的配置,然而 environment 中的配置會在打包時是固定的,想要像掛載 asp.net core 里的 appsettings.json 的配置文件一樣掛載 environment 是做不到的,想要讀取系統(tǒng)的環(huán)境變量也是行不通的。

有時候希望能夠動態(tài)指定一些配置,運行 docker 容器的時候掛載一個配置文件來實現動態(tài)配置

實現方案

通過一個 config.js 的配置文件,將配置信息寫入 window 對象的屬性中,配置信息從 window 對象中讀取,

這樣就可以動態(tài)掛載配置文件了。

實現細節(jié)

實現 ConfigService:

import { environment } from "../../environments/environment"; import { Injectable } from '@angular/core'; @Injectable({providedIn: 'root' }) export class ConfigService {public GetApiBaseUrl(): string {if (window["__env"] && window["__env"]["ApiBaseUrl"]) { return <string>window["__env"]["ApiBaseUrl"];}return environment.apiBaseUrl;} }

config.js 示例:

var env = {ApiBaseUrl: "https://reservation.weihanli.xyz" }; window["__env"]= env;

在 index.html 中引入 config.js 文件

<script src="assets/config.js"></script>

使用 ConfigService 示例:

import { ConfigService } from './ConfigService'; export class BaseService<TModel>{protected readonly apiBaseUrl;constructor(config: ConfigService){this.apiBaseUrl = config.GetApiBaseUrl();} }

Docker 掛載

docker run -d -p 9000:80 --name=reservation-client -v $(pwd)/assets/config.js:/usr/share/nginx/html/assets/config.js weihanli/reservation-client:latest # 掛載配置文件

sample config.js:

var env = {ApiBaseUrl: "https://reservation.weihanli.top" }; window["__env"]= env;

容器啟動成功之后,訪問 http://localhost:9000 即可,監(jiān)控 HTTP 請求

可以看到實際請求的地址已經變成了掛載的配置文件里的地址了

Reference

  • https://github.com/WeihanLi/ActivityReservation/tree/dev/ActivityReservation.Clients/ReservationClient

  • https://reservation-client.weihanli.xyz/

總結

以上是生活随笔為你收集整理的angular 构建可以动态挂载的配置服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。