如果您使用 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/`。