Nginx内部重写位置以提供静态内容

我试图从端点的静态内容的层次结构不同于实际的根目录结构。 这是我试图达到的结果:

0.0.0.0/Claw/scripts/main.js -> /home/ubuntu/Claw/public/scripts/main.js

我正在使用下面的Nginxconfiguration:

 location ~ ^/Claw/(images/|styles/|scripts/) { root /home/ubuntu/Claw/public; access_log off; expires max; } 

这是因为/home/ubuntu/Claw/public/Claw/scripts/main.js不存在。 因此,我需要从内部删除前缀 。 我怎么能这样做?

我想要这个结构,所以我可以在同一个域上托pipe来自不同端点的多个节点应用程序。

尝试这个:

 location ~ ^/Claw/(?<subdir>images|styles|scripts)/(?<file>.*) { alias /home/ubuntu/Claw/public/$subdir/$file; access_log off; expires max; } 

看来,nginx不会将捕获到variables中的variables从location指令传递到块内部。 当variables名称,然后他们工作。

你可以使用alias指令。

 location ~ ^/Claw/(images|styles|scripts)/ { alias /home/ubuntu/Claw/public/$1/; access_log off; expires max; }