惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
Microsoft Security Blog
Microsoft Security Blog
Jina AI
Jina AI
博客园 - 叶小钗
J
Java Code Geeks
博客园 - 聂微东
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
美团技术团队
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
罗磊的独立博客
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
小众软件
小众软件

博客园 - 望穿秋水

EF表查询列表只查询其中几列的写法 Vue 设置为history模式之后,刷新页面报404错误的解决办法 前端页面部署之后刷新页面之后出现HTTP 错误 404.0 - Not Found错误问题解决 大数据开发规范 IIS中SSL证书过期更新的问题 .NET安装运行环境及IIS网站部署相关问题汇总 SSAS问题汇总 [MSSQL]开启/关闭Ad Hoc Distributed Queries组件 sqlserver安装之后,SSMS远程连接连接不上的问题解决:请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接 数据治理包括哪些方面 WinForm的EXE破解(基于IL修改)【转】 C# 反编译破解软件方法【转】 vue项目启动报错 spawn cmd ENOENT errno TortoiseGit提交每次都需要输入账号密码的解决办法 spark mllib算法思想总结[转] MLlib算法简介 VS2019 Git连接源代码报错问题:cannot spawn askpass: No such file or directory could not read Username for ‘https://github.com‘: terminal prompts disabled 永久关闭Windows10自动更新 [转]人生就是不断试错的经历,只有见过最糟的经历,才能学会享受美好
VUE hash路由和history路由的区别
望穿秋水 · 2021-11-12 · via 博客园 - 望穿秋水
1.hash路由在地址栏URL上有#,用 window.location.hash 读取。而history路由没有会好看一点
2.我们进行回车刷新操作,hash路由会加载到地址栏对应的页面,而history路由一般就404报错了(刷新是网络请求,没有后端准备时会报错)。
3.hash路由支持低版本的浏览器,而history路由是HTML5新增的API。
4.hash的特点在于它虽然出现在了URL中,但是不包括在http请求中,所以对于后端是没有一点影响的,所以改变hash不会重新加载页面,所以这也是单页面应用的必备。
5.history运用了浏览器的历史记录栈,之前有back,forward,go方法,之后在HTML5中新增了pushState()和replaceState()方法,它们提供了对历史记录进行修改的功能,不过在进行修改时,虽然改变了当前的URL,但是浏览器不会马上向后端发送请求。
6.history的这种模式需要后台配置支持。比如:当我们进行项目的主页的时候,一切正常,可以访问,但是当我们刷新页面或者直接访问路径的时候就会返回404,那是因为在history模式下,只是动态的通过js操作window.history来改变浏览器地址栏里的路径,并没有发起http请求,但是当我直接在浏览器里输入这个地址的时候,就一定要对服务器发起http请求,但是这个目标在服务器上又不存在,所以会返回404

总结

当然history也不是样样都好。SPA虽然在浏览器里游刃有余,单真要通过URL向后端发起HTTP请求时,两者的差异就来了。尤其在用户手动输入URL后回车,或者刷新(重启)浏览器的时候。
1:hash 模式下,仅hash符号之前的内容会被包含在请求中,如http://www.abc.com,因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回404错误。
2:history模式下,前端的URL必须和实际向后端发起请求的URL一致。如htttp://www.abc.com/book/id。如果后端缺少对/book/id 的路由处理,将返回404错误

问题解决:
出现404错误的解决办法:网上介绍的很多方法都不行。安装URL重写模块,配置重写规则,统一指向index.html.或者直接把url重写生成的web.config文件直接放置到网站根目录下即可。