我正在尝试为某些文件类型添加行为,但由于我的内容不在同一个文件夹中,所以遇到了位置匹配导致 Nginx 在错误的文件夹中查找内容的问题。
以下情况下,对的请求/wp-content/themes/ryu/fonts/ClearSans-Regular.woff
会使 nginx 查找文件,/opt/wordpress/wp-content/themes/ryu/fonts/ClearSans-Regular.woff
而如果我注释掉location ~* \.(ogg|ogv|svg|svgz|eot
... 部分,Nginx 会在正确的位置查找内容。
有任何线索可以让我实现这个目标吗?
server {
listen *:80;
root /opt/wordpress;
location ~* \.(eot|ttf|woff)$ {
add_header Access-Control-Allow-Origin *;
}
location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off;
log_not_found off;
expires max;
}
location /wp-content/ {
alias /opt/wp-content/;
try_files $uri =404;
}
location / {
alias /opt/public/;
expires 1d;
index index.html;
try_files $uri @wpsupercache;
}
}
答案1
不添加
root /opt/;
在ogg...
location
节中执行您想要的操作?假设您的示例的文件系统路径是/opt/wp-content/themes/ryu/fonts/ClearSans-Regular.woff