D-20260816-11|前端靜態內容路徑收斂¶
背景與驅動力¶
i18n 首輪決策以獨立 JSON 描述自寫 Service Worker 的離線模型,後續實作已改由動態 import 產生
locale chunks;公告來源也在靜態資產整理後移到 public/assets namespace。兩者的產品語意未變,
但舊 ADR 的實體路徑會讓維護者誤建已不存在的檔案樹。
考慮過的選項¶
- 把現況視為純實作細節、不補關係:舊路徑仍會被當成有效契約,否決。
- 保留獨立 JSON alias:增加重複 payload 與雙來源,且專案尚未發布,否決。
- 以 current build 形狀修訂兩份舊 ADR,保留原本離線與發布語意(採納)。
決定¶
- i18n 字典由動態 import 形成每語系 lazy bundle chunk,不再輸出
/assets/i18n/*.json;build 後 precache 掃描仍涵蓋全部 chunks,fetch 維持 cache-first,因此首次安裝後四語離線能力不變。 - 公告作者來源固定為
public/assets/announcements/<id>/,generator 再產 browser、SSR/SSG 與 Service Worker 所需 projection;不保留public/announcements/<id>/alias。 - 兩項都是 pre-launch 唯一 current shape,不提供 dual-read、redirect 或舊目錄 migration。
後果與影響¶
ADR、canon 與 build 輸入現在指向同一組路徑,工具不再可能同時維護 JSON 字典與 bundle 字典, 公告也不會分散在兩個 public namespace。D-20260704-02 的自寫 Service Worker 與語系前綴、 D-20260716-02 的靜態多語、封閉 schema、四語完整性及 git PR 信任模型均維持有效。