当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!

不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。

所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

后端配置例子

注意:下列示例假设你在根目录服务这个应用。如果想部署到一个子目录,你需要使用 Vue CLI 的publicPath 选项 和相关的 router base property。你还需要把下列示例中的根目录调整成为子目录 (例如用 RewriteBase /name-of-your-subfolder/替换掉 RewriteBase /)。

Apache

<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.html$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.html [L]
</IfModule>

nginx

location / {try_files $uri $uri/ /index.html;
}

原生 Node.js

const http = require('http')
const fs = require('fs')
const httpPort = 80http.createServer((req, res) => {fs.readFile('index.html', 'utf-8', (err, content) => {if (err) {console.log('We cannot open "index.html" file.')}res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'})res.end(content)})
}).listen(httpPort, () => {console.log('Server listening on: http://localhost:%s', httpPort)
})

解决Vue history模式下路由跳转时页面404问题相关推荐

  1. 解决Vue history模式下使用嵌套路由打包部署后刷新页面为空白页

    解决Vue history模式下使用嵌套路由打包部署后刷新页面为空白页 前言 问题分析 问题解决 结语 前言 众所周知,Vue路由有两种模式,默认hash模式,这种模式下url上会带"#&q ...

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

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

  3. vue 刷新嵌套路由_vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法...

    解决vue-router嵌套路由(子路由)在history模式下刷新无法渲染页面的问题,具体内容如下 一. 异常描述 本来使用的是vue-router的hash模式,但是hash模式下url需要带&q ...

  4. nginx导致vue设置history模式下的请求丢失参数

    nginx导致vue设置history模式下的请求丢失参数 问题描述: 当访问下面的路径时参数会丢失: http://ip/vuecay/path1/path2?name=cay 演示效果: 可以看到 ...

  5. vue-cli3.x正确打包项目,解决静态资源与路由加载无效的问题,history模式下配合使用nginx运行打包后的项目

    vue-cli3.x正确打包项目,解决静态资源与路由加载无效的问题,history模式下配合使用nginx运行打包后的项目 参考文章: (1)vue-cli3.x正确打包项目,解决静态资源与路由加载无 ...

  6. 【新闻系统-React】问题2 antd组件下 路由跳转

    1.useHistory 1)SandBox组件 import { useHistory } from 'react-router-dom'const history=useHistory()< ...

  7. vue 项目 路由跳转时,ie报错 缺少')'

    vue 项目 路由跳转时,ie报错 缺少')' 报错信息 解决办法 报错信息 vue项目中使用了vue-echarts,项目启动后,在chrome上路由跳转没问题,但是在ie的控制台报"缺少 ...

  8. Vue路由跳转时导航栏更新

    Vue路由跳转时导航栏更新 问题描述 在调用函数中跳转路由,但是侧边栏没有更新激活的高亮状态 排查 查看路由跳转后,侧边栏中active_index的session储存正常 由于侧边栏由组件引入,所以 ...

  9. h5 uniapp history模式下刷新页面404

    h5 uniapp history模式下刷新页面404 问题:uniapp 的history 把#去掉了,但是当刷新页面的时候出现404 解决方案 需要服务端支持 如果 URL 匹配不到任何静态资源, ...

  10. 解决Carla同步模式下Runtime Error的问题(tick hangs)

    解决Carla同步模式下Runtime Error的问题(RuntimeError: time-out of 10000ms while waiting for the simulator, make ...

最新文章

  1. JavaScript基础知识(函数)
  2. 图形处理(三)简单拉普拉斯网格变形-Siggraph 2004
  3. git fetch和git pull的区别_Git实战(实验楼)学习笔记 实验2 基本用法(下)
  4. 用scikit-learn和pandas学习线性回归
  5. sqlserver数据库中清空日志文件
  6. Android开发之常用的自定义输入框之EditText
  7. SMB MS17-010 利用(CVE-2017-0144 )
  8. 远程主机访问mysql权限_如何给远程主机开启mysql远程登录权限
  9. 4章. 安装CentOS 5.x与多重引导小技巧
  10. jaxb java xml序列化_XML编程总结(六)——使用JAXB进行java对象和xml格式之间的相互转换...
  11. 检测到目标主机可能存在缓慢的http拒绝服务攻击_高防服务器能防住哪些攻击?“流量清洗”与它有什么关系?...
  12. Flutter布局锦囊---屏幕顶部提醒
  13. android源码已关联设备,获取android设备已安装应用信息
  14. VMware虚拟桌面,后台更改用户密码后,掉域的问题
  15. 每天写工作日志、周报你怎么看?
  16. 一个海量在线用户即时通讯系统(IM)的完整设计
  17. 钉钉考勤-获取需要记录考勤的人员
  18. 一箭穿心程序编码c语言,一个简单的一箭穿心程序
  19. 调研-python使用win32com模块操纵excel
  20. 按键按动次数计数c语言,二、Windows按键消息—重复计数、OEM扫描码、扩充键旗标、内容代...

热门文章

  1. 淮安市第八届计算机比赛,淮安市科学技术协会
  2. 文明与征服李世民最强阵容推荐
  3. 第三章 枚举(炸弹人、火柴棍等式、全排列)
  4. [读书笔记]高效15法则 谷歌、苹果都在用的深度工作法
  5. Mysql工作原理——redo日志文件和恢复操作
  6. 从GitHub火到了CSDN,共计1658页的《Java岗面试核心MCA版》
  7. WOW外挂编写教程---进阶版
  8. “舒淇半停工原因”上热搜:人生下半场,拼的是健康
  9. 转载:typhoon 必备英文词汇
  10. 第四集:让声音变得更有磁性 —— 共鸣训练(汇播课程演说笔记)