請教 base href dynamically 是否有相關的做法


#1

我有兩個環境: Dev & Prod

  1. Dev為內部站台,假設 url為
    1.1 http://www.example.com/dev1/
    1.2 http://www.example.com/dev2/

  2. Prod則為對外開方的站台,假設 url為
    2.1 http://www.example.com/

當我透過 "ng build --prod " 產出的目錄,它放在 Prod 的環境下可以運作,而放在Dev 環境下則會因為base href 並未指定根目錄路徑,導致抓不到styles.css, polyfills.js, runtime.js 等資源

想請教下現在除了 ng build --base-href /dev1/ --prod, ng build --base-href /dev2/ --prod 這樣做,還有其他什麼方式嗎?
因為是同一包Code 只是部署環境不同,是不是可以只要 build 一次就行了?


#2

如果是搭配 CI/CD 的話,建置幾份應該是還好才是

但如果你真的要做到動態,那還是有辦法的,透過設定 APP_BASE_HREF 的方式

 { provide: APP_BASE_HREF, useValue: window['_app_base'] || '/' },

useValue 的部分就依你的需求做調整


#3

OK 了解,我想可能也是CI/CD 的方式更為適合