當前的檔案夾結構是這樣的:
root
-.github/workflows
-frontend
-backend
后端使用 NodeJS-NestJS/Express 并從 React 前端提供靜態檔案。前端必須由后端提供服務,因為一些特定的 cookie 與靜態資產一起提供。例如,用戶必須到達example.com/才能看到網站,API 就像example.com/someapi. 由于缺少重要的 cookie,無法部署前端example1234.com并進行 API 呼叫。example.com/someapi
應用引擎用于存盤后端,啟用了 Identity Aware Proxy。目前,我知道 2 個選項:
- 使用
dispatch.yaml,我相信這不會起作用,因為前端和后端位于 2 個不同的實體上,因此不同的域(例如example1234.com和example.com)。 - 使用 Cloud Storage Bucket,這將起作用,但靜態資產必須公開可用。這是不允許的,因為應用程式僅供內部使用。IAM 是必要的,也就是說,應用程式本身也有一個單獨的身份驗證層。
感謝您對我的想法提出任何建議或更正!
更新 - 解決方案 根據接受的答案,這是我解決這個問題的方法。
構建 React,并將其構建檔案夾復制到后端內部的檔案夾中。
在
nest-cli.json中,在 NestJS 構建中包含靜態 React 構建"compilerOptions": { "assets": [ "resources/build" ]}在編譯期間動態加載靜態服務路徑。
所有這些都是在 CI/CD 管道中完成的。
uj5u.com熱心網友回復:
如果您必須通過后端來提供靜態檔案,請直接從后端提供它們(并洗掉未經任何檢查提供的靜態檔案的值)。
IAP 是一種防止訪問靜態檔案的解決方案,但如果這還不夠,除了我之前的評論之外,您沒有其他解決方案(至少對于無服務器產品,我相信您可以在容器中使用 Nginx 做更多可定制的事情或虛擬機)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/423129.html
標籤:
下一篇:將Django應用程式部署到GoogleAppEngine時出現錯誤“ModuleNotFoundError:Nomodulenamed'psycopg2'”
