我在/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 }