Vue-histroy模式跳转路由404问题
# 问题原因
我们的服务器是根据页面路由,去按路径寻找资源的。我们打包好的web
站点只有一个html
页面,不存在其他资源目录下的html
,服务器找不到对应页面所以才报404。
# 解决方案
location / {
root /opt/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# 变量解释
# try_files 固定语法
# $uri 指代home文件(ip地址后面的路径,假如是127.0.0.1/index/a.png,那就指代index/a.png)
# $uri/ 指代home文件夹
# /index.html 向ip/index.html 地址发起请求
# 尝试解析下列2个文件/文件夹(自动分辨出,IP后面的路径是文件还是文件夹), $uri/$uri/
# 如果解析到,返回第一个
# 如果都没有解析到,向127.0.0.1/index.html发起请求跳转(该路由必须真实,不然会报错
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
如果给出的file都没有匹配到,则重新请求最后一个参数给定的uri
,就是新的location匹配
# 常见变量
$uri
当前请求的 URI,但不含“?”后的参数$args
当前请求的参数,即“?”后的宇符串$arg_xxx
当前请求里的某个参数,“arg ”后是参数的名字$http_xxx
当前请求里的 xxx 头部对应的值$sent_http_xxx
返回给客户端的响应头部对应的值$remote_addr
客户端IP地址。$http_cookie
获取cookie值$cookie_xxx
当前请求的cookie xxx对应的值$request_uri
浏览器发起的不作任何修改的请求的url
中的path 如在www.baidu.com/p1/file?d=111
, 其值为/p1/file?d=111
$uri
指当前的请求URI,不包括任何参数,反映任何内部重定向或index模块所做的修改$request_method
请求方法
上次更新: 2024/08/14, 04:14:33