提供前端构建中未出现的静态文件夹的最佳方法

提供前端构建中未出现的静态文件夹的最佳方法

我有以下情况。我的应用程序的 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/。到目前为止,这个解决方案对我来说效果很好。

相关内容