如果您使用 url like:http://your.page.com/static/image.gif
那么根据您的规则,您会得到这样的 uri(包括alias
指令):
/home/ubuntu/workspace/mysiteimage.gif;
所以结论是/
从location
指令中删除最后一个(应该是)或在指令/static
末尾添加(所以它将是)alias
/
alias /home/ubuntu/workspace/mysite/;
其他解决方案可能是:
location ~ (static/.*) {
alias /home/ubuntu/workspace/mysite/$1;
# ... rest of code here
}
然后您不必在指令中static
再次添加。alias
您只需将其用作位置参数 ($1 = static/.*)。
为什么这样?alias
指令(别名 doc)的工作方式如下:它从location
指令末尾匹配的请求 url 部分修剪,然后将保留的内容附加到它自己的规则路径。在您的 url 示例中,/static/image.gif/
它将修剪/static/
并仅附加到您的alias
路径image.gif
,因此看起来就像我写的:/home/ubuntu/workspace/mysiteimage.gif/`。