您的位置:首页技术文章

Nginx解决history模式下页面刷新404问题示例

【字号: 日期:2023-03-28 17:34:55浏览:4作者:猪猪
目录
  • 前置知识
  • Nginx
  • location
    • 常用匹配规则
  • root 与 alias
    • 解决刷新后出现404的问题
  • 总结

    前置知识

    • 单页应用(SPA - single page application)
      只在第一次加载页面时,返回唯一的html页面和它的公共静态资源,后续的页面跳转都不会从服务端拿html文件。(hash和history路由实现浏览器url变化而不刷新页面)
    • hash路由
      例子:www.baidu.com/#/home, 原本hash是用来结合锚点实现页面试图的控制,当#后面的值发生改变时不会重新请求页面,主要通过window的onhashchange方法来实现。
    • history路由
      相比于hash路由,最直观的变化就是路由中没有#,通过调用window.history对象上的一系列方法来实现页面的无刷新跳转(pushState、replaceState)。

    history模式下,因为url改变了,此时如果手动刷新页面,浏览器认为是请求一个新的页面(发起新的Http请求),而新的页面是不存在的(后端未配置的话),导致404。

    先简述一下在浏览器上输入IP或域名后发生的事情(有点面试题的味道了嗷

    标签: Nginx