前言

hash 模式时将路径转换为 /#/xxx/xxx 模式,页面不刷新,请求资源路径不变,从而实现内容的跳转。

history 模式直接去掉了 /#/,如果服务器不配置的话,直接就是 404。

服务器实现 history 模式的原理:
只要请求某个应用下的资源,都返回这个应用的入口回去(index.html),路径什么的都交给入口处理。

实现

nginx 有很多方法都能实现这个功能,这里介绍通过 error_page 实现的方法

以 vue 为例:

通过 error_page

  1. vue 路由基础路径设置
// xxx.com 直接访问应用时无需修改 base
const router = new VueRouter({base: process.env.BASE_URL,mode: 'history'/* ... */
})
// xxx.com/xxx 访问应用时需修改 base
const router = new VueRouter({base: '/demo',mode: 'history'/* ... */
})
  1. vue 根路径配置

history 模式下不能使用相对路径 ./,因为 history 模式下路径不是以 /#/ 表示,使用相对路径会使路径出错导致某些资源 404

// xxx.com 直接访问应用时设为 /
module.exports = {publicPath: '/',/* ... */
}
// xxx.com/xxx 直接访问应用时设为 xxx/
module.exports = {publicPath: 'demo/',/* ... */
}
  1. nginx 配置
# 根据实际情况设置一下 root
# 可以写 location 外面(全局),也可以写 location 里面(局部)
root  /www/server/nginx/html;
# xxx.com 访问应用
location / {index index.html;error_page 404 /index.html;
}
# xxx.com/xxx 访问应用
location /demo {index index.html;error_page 404 /demo/index.html;
}

利用 error_page 的特性,只要是 404 页面都返回相应的入口文件回去。

通过 try_files

还可以使用 try_files 实现

# xxx.com 访问应用
location / {try_files $uri $uri/ /index.html;
}

还可以使用 rewrite 实现 … nginx NB

单页应用history模式nginx配置相关推荐

  1. vue history模式Nginx配置

    当你使用 history 模式时,url就像正常的url,例如 "http://yoursite.com/mapp/subpage",不过这种模式还需要后台配置支持.因为我们的应用 ...

  2. history模式 nginx配置_Vue history模式Nginx配置

    vue开发使用history模式的时候Nginx相关的配置有如下两种: 1.此种配置直接使用的根域名,没有其他的二级路径,因此root直接指向目标文件夹,即包含index.html的文件夹路径 ser ...

  3. history模式 nginx配置_nginx反向代理部署vue项目(history模式)的方法

    前言: 根据标题我们要区分出两个信息 1. history 模式部署 ( vue的路由模式如果使用history,刷新会报404错误.) 2. Nginx 做反向代理 问题1思考: vue-route ...

  4. vue路由history模式,nginx配置

    nginx配置内容 # For more information on configuration, see: # * Official English Documentation: http://n ...

  5. Vue Router history模式的配置方法及其原理

    转载地址:https://segmentfault.com/a/1190000019391139 vue-router分为hash和history模式,前者为其默认模式,url的表现形式为http:/ ...

  6. vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 “invalid signature“错误解决方案

    vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案 参考文章: (1)vue 单页面(SPA) hist ...

  7. vuejs构建的单页面应用history模式子页面微信分享在iOS中遇到的问题

    问题描述 在用vuejs做的SPA单页面应用,router模式为history模式,应用是个商城,在进入商品详情页时,第一次进入页面提示签名无效,手动刷新一下就ok,很是烦躁,经过不懈努力,终于解决. ...

  8. vue-router路由history模式+nginx部署项目到非根目录下(实践版)

    你总是心太软心太软 独自一个人研究到天亮 你无怨无悔的疯狂找寻 我知道你根本没那么坚强 你总是心太软心太软 把所有问题都自己扛 问题总是太多解决太难 不是你的就别再勉强 夜深了你还不想睡 你还在想着他 ...

  9. 解决 VUE history模式 后端配置 微信支付目录限制5个 等问题

    前言 作为小公司的WEB开发组组长, 本身为全栈工程师, 主攻方向为PHP. 最近将项目由MVC模式改为了MVVM, 做为小公司的为了节省成本, 招聘了一个新手前端, 编写VUE 新手的技术,无奈并不 ...

最新文章

  1. CSS 框模型——规定了元素框处理元素内容、内边距、边框和外边距的方式
  2. ubuntu:无法将“ubuntu1804.exe”项识别为cmdlet、函数、脚本文件或可运行程序的名称。【已解决】
  3. QT的QInputDialog类的使用
  4. HDU 3397 线段树 双懒惰标记
  5. LeetCode 1020. 飞地的数量(图的BFS/DFS)
  6. 【华为云技术分享】《跟唐老师学习云网络》 - Tcpdump大杀器抓包
  7. Wow-JPack发布0.4.0
  8. WAP网站制作(WAP网站建设)全攻略教程一
  9. GooFlow有后门代码
  10. arcmap拓扑错误检查器不亮_ARCGIS拓扑检查步骤与修正拓扑错误技巧
  11. 游戏场景设计探究:冬夏季节光色模型
  12. 批量去除Word的向下小箭头
  13. 我所佩服的古人——乐毅
  14. luogu p4556 [Vani有约会]雨天的尾巴 树上差分,最近公共祖先,线段树合并
  15. 嵌入式面试之————大小端
  16. 西游记中泾河龙王泄露天机惨遭砍头,而袁守诚为何安然无恙
  17. css浮动清除以及BFC
  18. 【目标检测 论文精读】……YOLO-V2 YOLO9000 ……(YOLO9000: Better, Faster, Stronger)
  19. SplitIt视频文件快速分割工具操作技巧
  20. 基于NIO 的轻量级高性能的websocket服务器

热门文章

  1. 群晖NAS教程(十六)、利用Docker安装GitLab管理代码工具
  2. jpg照片怎么压缩?改变jpg文件大小?
  3. Python 调用 HTTP API 接口模板
  4. 如何解释 Minitab 运行图的主要结果?
  5. 【Copula】基于二元Frank-Copula函数的风光出力场景生成方法【考虑风光出力的不确定性和相关性】(Matlab代码实现)
  6. 设计模式之工厂方法模式---factory method
  7. 模拟器飞行训练-2022.12.1
  8. Verilog的常用testbench模板分享
  9. EJB 3 术语汇编
  10. Windows sqlite3 安装使用+ 1SQLiteDeveloper 可视化查看