如何解决Vue history模式下非index路由导致的404错误?
- 内容介绍
- 文章标签
- 相关推荐
本文共计930个文字,预计阅读时间需要4分钟。
我们先来看看当代代码:
location / { index index.; root /dist; try_files $uri $uri/ /index.;}
分析如下:
`try_files` 首先会判断请求的 URI 是文件还是目录:
- 如果是文件,它将尝试直接提供这个文件。- 如果不是文件,它会检查是否存在以该 URI 为名称的目录。- 如果以上两者都不存在,它将回退到提供 `/index.`。
所以,如果请求的资源是一个文件,并且该文件存在于 `/dist` 目录下,`try_files` 会直接提供该文件。如果请求的资源不存在,它将显示 `/index.`。
我们先来看下代码:
location / { index index.html; root /dist; try_files $uri $uri/ /index.html; }
try_files首先会判断他是文件,还是一个目录,结果发现他是文件,与第一个参数 $uri变量匹配。
然后去到网站目录下去查找文件是否存在,如果存在直接读取返回。如果不存在直接跳转到第三个参数.
现在不明白的是既然跳到了index为什么显示的还是路由后的界面
内容扩展:
问题背景:
vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载。但是如果我们不想hash这种以#号结尾的路径时候的话,我们可以使用路由的history的模式。
本文共计930个文字,预计阅读时间需要4分钟。
我们先来看看当代代码:
location / { index index.; root /dist; try_files $uri $uri/ /index.;}
分析如下:
`try_files` 首先会判断请求的 URI 是文件还是目录:
- 如果是文件,它将尝试直接提供这个文件。- 如果不是文件,它会检查是否存在以该 URI 为名称的目录。- 如果以上两者都不存在,它将回退到提供 `/index.`。
所以,如果请求的资源是一个文件,并且该文件存在于 `/dist` 目录下,`try_files` 会直接提供该文件。如果请求的资源不存在,它将显示 `/index.`。
我们先来看下代码:
location / { index index.html; root /dist; try_files $uri $uri/ /index.html; }
try_files首先会判断他是文件,还是一个目录,结果发现他是文件,与第一个参数 $uri变量匹配。
然后去到网站目录下去查找文件是否存在,如果存在直接读取返回。如果不存在直接跳转到第三个参数.
现在不明白的是既然跳到了index为什么显示的还是路由后的界面
内容扩展:
问题背景:
vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载。但是如果我们不想hash这种以#号结尾的路径时候的话,我们可以使用路由的history的模式。

