フロントエンドビルドに表示されない静的フォルダを提供するための最良の方法

フロントエンドビルドに表示されない静的フォルダを提供するための最良の方法

次のような状況です。アプリの 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そのため、ディレクトリを別の場所に保存し、展開するたびにrsyncWeb コンテンツ フォルダーに保存する必要があります。

  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 つのフォルダーを新しいサーバー ブロックに分離する「価値がある」かどうかはわかりません。

あなたの経験からすると、これを正しく対処するためのより良い方法はあるでしょうか?

答え1

最後に、このフォルダーをこのパスに配置し、 nginx 構成ファイル/var/www/html/path/to/user_staticsに簡単な場所ディレクティブを追加しました。sites-available/my.domain.com

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

そのため、その後、nginx はuser_statics、 とは別のサーバー ファイル システム内のこの場所にリクエストをプロキシします/var/www/my.domain.com/html/。現時点では、このソリューションは私にとってはうまく機能しています。

関連情報