提供前端建置中未提供的靜態資料夾的最佳方法

提供前端建置中未提供的靜態資料夾的最佳方法

我有以下情況。我的應用程式的 Web 內容位於標準目錄中/var/www/my.domain.com/html/。另外,我users_statics在該目錄內的某個位置有一個資料夾,我的應用程式在其中儲存用戶上傳的一些基本檔案。請注意,這些文件未合併到前端建置中,並且在使用過程中僅需要該文件的 URL。

但是,我的部署管道腳本刪除了其中的所有檔案/var/www/my.domain.com/html/並插入新的前端構建,預設不包含user_statics目錄。例如:

rm -rf /var/www/my.domain.com/html/*
cp -av build/. /var/www/my.domain.com/html/

因此,我必須將user_statics目錄儲存在其他位置,並在每次部署後將rsync其儲存到 Web 內容資料夾:

  mkdir /var/www/my.domain.com/html/.../user_statics
  rsync -qah ./user-statics-bkp/* /var/www/my.domain.com/html/.../user_statics

我不確定這是處理此資料夾的最理想方法,因為此時我想將 API 添加到後端應用程式以與其內容進行互動。因此,例如,我可能會在部署過程中遇到對此資料夾的錯誤 API 呼叫。

我看到以下選項,但在我看來,沒有一個選項是完美的:

  1. 以某種方式重寫 CD 管道以在部署期間「忽略」此資料夾。
  2. 將此資料夾移至該/var/www/html/資料夾並將附加指令寫入 nginx 設定檔。
  3. 打開此資料夾的子網域並為此子網域建立伺服器區塊。但是,我不確定這個資料夾是否“值得”分離到新的伺服器區塊。

根據您的經驗,有沒有更好的方法可以正確處理?

答案1

最後,我將此資料夾放在此路徑中/var/www/html/path/to/user_statics,並向sites-available/my.domain.comnginx 設定檔添加了簡單的位置指令:

location /path/to/user_statics {
     root /var/www/html/;
}

因此,之後 nginx 將user_statics請求代理到伺服器檔案系統中的這個位置,與/var/www/my.domain.com/html/.到目前為止,這個解決方案對我來說效果很好。

相關內容