如何在nginx的某个位置path上提供静态文件的目录?

我在/Users/me/myproject有文件,我想用一个简单的nginxconfiguration在http://stuff.dev/something上提供它们。 在/Users/me/myproject文件夹中是这样的:

 index.html scripts/ app.js styles/ style.css 

所以我真的想要能够访问http://stuff.dev/something/scripts/app.js

在我的nginx conf中我有这个:

 server { listen 80; server_name stuff.dev; location /something { index index.html; root /Users/me/myproject; } } 

这不起作用(如果我尝试去上面的url,我得到一个404),但是如果我尝试完全相同的设置,但使用location / {而不是location /something { ,它工作正常。 我怎样才能静态地服务这个文件的目录,但在一个path,而不是在根位置? 我必须将这些文件放在名为“something”的文件夹(如/Users/me/myproject/something吗? 如果有的话有办法呢?

我在我的VPS上尝试了这一点,并使用alias命令为我工作:

 server { listen 80; server_name something.nateeagle.com; location /something { alias /home/neagle/something; index index.html index.htm; } } 

我相信你可以用try_files指令完成这个工作,像这样的东西应该工作:

 server { listen 80; server_name stuff.dev; location /something { root /Users/me/myproject; index index.html; try_files /Users/me/myproject/$uri /Users/me/myproject/$uri/ =404 } } 

可能需要你把文件放在/ Users / me / myproject /下 ,如果你不能摆脱这种情况,你需要尝试下面的位置:

  location ~ /something(.*) { root /Users/me/myproject; index index.html; try_files /Users/me/myproject$1 /Users/me/myproject$1/ =404 }