Web 使用nginx合并2个目录的内容

Web 使用nginx合并2个目录的内容,web,nginx,rewrite,assets,Web,Nginx,Rewrite,Assets,我有 /站点/应用程序/资产/css /站点/app/assets/js /现场/公共/资产/img /站点/公共/资产/任何内容 web根目录应为/site/public 我希望请求转到/site/public/assets/img(类似于默认设置),但我也希望请求转到/site/app/assets/js 这样做的原因是,生产服务器可以处理应用程序文件夹中的源,将它们放在生产服务器本地的不同文件夹中(不受版本控制),然后在服务器上合并包含已处理资产的文件夹 我在想一定有办法,但我想不出来

我有

  • /站点/应用程序/资产/css
  • /站点/app/assets/js
  • /现场/公共/资产/img
  • /站点/公共/资产/任何内容
web根目录应为/site/public

我希望请求转到/site/public/assets/img(类似于默认设置),但我也希望请求转到/site/app/assets/js

这样做的原因是,生产服务器可以处理应用程序文件夹中的源,将它们放在生产服务器本地的不同文件夹中(不受版本控制),然后在服务器上合并包含已处理资产的文件夹

我在想一定有办法,但我想不出来


谢谢。

您需要为所需位置设置可选的
根目录。像这样

server {

    listen 80;
    server_name localhost;

    root /var/www/site/public;

    location ~ /assets/(css|js)/ {
      root /var/www/site/app;
    }

}

谢谢,我知道在这种情况下可以这样做,但是如果应用程序文件夹中的文件夹不是名为assets,或者url有更多级别,如example.com/something/somethingelse/assets,您知道解决方案是什么吗?如果应用程序目录有一个包含资产的目录,但名称不同,并且您仍然希望使用相同的url对其进行寻址,您需要使用。它将允许您“替换”URL段。如果资产目录包含在另一个目录中,您只需要在该位置调整根目录,例如,
root/var/www/site/app/something/something
因此,与根目录匹配的位置正则表达式的路径对应于一个文件名。