如何从一个单一的根服务多个位置?

我有nginx服务静态文件,从uripath映射到文件夹path,如:

www.tempuri.org/js <=> /var/www/plublic/js www.tempuri.org/css <=> /var/www/plublic/css www.tempuri.org/img <=> /var/www/plublic/img www.tempuri.org/foobar <=> /var/www/plublic/foobar 

在我的nginx conf中,这个规则基本上都有相同的根:

 location /js/ { root /var/www/public/; } location /css/ { root /var/www/public/; } location /foobar/ { root /var/www/public/; } location /img/ { root /var/www/public/; } 

我怎样才能为所有4条path写一条规则?

 location /(css|js|img|foobar)/ { root /var/www/public } 

root应放置在server块中,而不是位于块中。 这是最常见的nginx错误configuration之一 。

进行这一更改也将解决您的问题,并消除该location块的需要

你几乎拥有它。

 location ~ ^/(css|js|img|foobar)/ { root /var/www/public/; }