坑点
ginx location 正则
alias
和 try_files
, 存在排斥情况,不能一起使用,要使用root。
- 案例如下
# 老版本门户前端
location ^~ /assets {
alias /usr/share/nginx/homepage_test/assets/; # 老版本 js、css文件
}
# nginx location 正则 alias和 try_files, 存在排斥情况,所以只能用root
# try_files 至少两个参数 file uri 或者 file =code;形如:`try_files $uri $uri/index.html $uri.html =404`;
location ~ ^/(newsEditPage|preview|documents|aboutUs|dynamics|certification|navigatorDetail|databaseNavigation|journalSearch|commonWraplink|guide)(.*)$ {
root /usr/share/nginx/homepage_test;
try_files $2 /$1/index.html; # vue/react发布的build包
}
# 正则代理css,jss等静态文件,$1必须加
# location ~ ^/gkxtest/(.*)$ {
# alias /usr/share/nginx/homepage_test/$1;
# }
# 正则代理css,jss等静态文件,$1必须加
# location ~ ^/homepage_test/(.*)$ {
# root /usr/share/nginx;
# try_files $uri $uri/ =404;
# }
try_files 知识点
- try_files 至少两个参数 file uri 或者 file =code;形如:try_files $uri $uri/index.html $uri.html =404;
- try_files 和 alias 或 root的关系,按指定顺序检查文件是否存在,并使用第一个找到的文件进行请求处理。处理的基于上下文处理的。文件的路径是file 根据前面的 root 和 alias 指令作为参数构建的。可以通过在名称末尾,指定斜杠来检查目录是否存在, 例如 $uri/, 如果没有找到任何文件, URL 则进行到最后一个参数中指定的内部重定向。 最后一个参数可以是URL 也可以是一个 code.
- 就是说,
try_files前面的参数都是拼凑 root 或 alias的路径去找文件
,最后一个参数是重定向url:https://your_domain/xxx/index.html
。
location / {
root /path/to/files;
try_files $uri $uri/ /index.html;
}
location ~ ^/static/(.*)$ {
alias /path/to/static/$1;
}
# 非正则的话,alias 和 try_files 可以一起使用,代理css,jss等静态文件
location /wxttest {
alias /usr/share/nginx/homepage_test/;
try_files $uri $uri/ /wxttest/index.html;
}
标签:files,alias,uri,try,nginx,正则,location
From: https://www.cnblogs.com/beihangxuwei/p/17895049.html