我正在尝试使用cache-comtrol工作。
在nginx中我有以下内容:
location /static/ {
alias /home/ubuntu/workspace/mysite;
expires max;
add_header Cache-Control public;
}
在mysite目录中我有静电。在静态中,我有js,css和图像的目录。
在网络浏览器中,我收到404错误。图像无法找到。如果我删除location / static /这个站点有效,但我没有缓存控制。
我该如何解决?
答案 0 :(得分:1)
如果您使用类似: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 =静态/.*).
为什么这样? alias
指令(alias doc)的工作原理如下:它从location
指令结束时匹配的请求的url部分进行修剪,然后将保留的内容附加到它自己的规则路径。在您的网址/static/image.gif/
的示例中,它将修剪/static/
和alias
路径只追加image.gif
所以它看起来像我写的:/ home / ubuntu / workspace / mysiteimage .gif注意/`。
我希望这会有所帮助,并为您提供一些有用的信息。