问题背景:

  vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载。但是如果我们不想hash这种以#号结尾的路径时候的话,我们可以使用路由的history的模式。比如如下网址:使用hash模式的话,那么访问变成 http://localhost:8080/bank/page/count/#/ 这样的访问,如果路由使用 history的话,那么访问的路径变成 如下:http://localhost:8080/bank/page/count 这样的了;

  不过history的这种模式需要后台配置支持。比如:当我们进行项目的主页的时候,一切正常,可以访问,但是当我们刷新页面或者直接访问路径的时候就会返回404,那是因为在history模式下,只是动态的通过js操作window.history来改变浏览器地址栏里的路径,并没有发起http请求,但是当我直接在浏览器里输入这个地址的时候,就一定要对服务器发起http请求,但是这个目标在服务器上又不存在,所以会返回404

  怎么解决呢?我们现在可以把所有请求都转发到 http://localhost:8080/bank/page/index.html上就可以了。

解决方案:

  对于VUE的router[mode: history]模式在开发的时候,一般都不出问题。是因为开发时用的服务器为node,Dev环境中自然已配置好了。

  但对于放到nginx下运行的时候,自然还会有其他注意的地方。总结如下:

  在nginx里配置了以下配置后, 可能首页没有问题,但链接其他会出现(404)

    location / {root   D:\Test\exprice\dist;index  index.html index.htm;try_files $uri $uri/ /index.html;add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Credentials' 'true';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';}location ^~/api/ {proxy_pass   http://39.105.109.245:8080/;}

  为了解决404,需要通过以下两种方式:

  1、官网推荐

location / {root   D:\Test\exprice\dist;index  index.html index.htm;try_files $uri $uri/ /index.html;

  2、匹配errpr_page

location /{root   /data/nginx/html;index  index.html index.htm;error_page 404 /index.html;
}

Vue路由history模式踩坑记录:nginx配置解决404问题相关推荐

  1. 用Gitee Pages服务在线预览vue3前端项目:静态网站+多级路由+history模式(踩坑)

    目录 目标与前提 vue打包.预览遇到的坑以及原因 坑①:静态网站打开一片空白 坑②:子路由刷新或直接输入时,网页一片空白或404 坑③:首页加载时间过长 坑④:线上预览地址出错时,不显示404页面 ...

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

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

  3. vue 打包路由报错_Vue下路由History模式打包后页面空白的解决方法

    vue的路由在默认的hash模式下,默认打包一般不会有什么问题,不过hash模式由于url会带有一个#,不美观,而且在微信分享,授权登录等都会有一些坑.所以history模式也会有一些应用场景.新手往 ...

  4. 新来的前端小姐姐问:Vue路由history模式刷新页面出现404问题

    摘要:vue-router 默认 hash 模式 -- 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 本文分享自华为云社区<学习Vue Rou ...

  5. Vue 路由history模式nginx部署(二级目录)

    公司常用服务器为apache,最近一个项目需部署到nginx目录,且是在子目录下,即访问链接:http://www.xxx.com/rector/bnu/ apache服务器配置很简单,只需要在ind ...

  6. vue路由history模式刷新页面时页面丢失时常见的两种解决方法

    方法一: 1 2 3 4 5 6 7 8 location /{     root   /data/nginx/html;     index  index.html index.htm;     i ...

  7. vue 路由history模式打包部署 The requested URL * was not found on this server. 的解决方法

    apache开启rewrite_module模块, 在项目根目录创建.htaccess文件,文件内容如下 <IfModule mod_rewrite.c>   Options +Follo ...

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

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

  9. Mirai qq机器人ubuntu配置踩坑记录

    Mirai qq机器人ubuntu配置踩坑记录 intellij配置 打包jar ubuntu无界面运行 Mirai GitHub 链接 mirai-github intellij配置 我的是Ulti ...

最新文章

  1. selenium+Edge浏览器实现web端自动化测试
  2. C++ Primer 5th笔记(chap 12 动态内存)weak_ptr
  3. wxWidgets:wxApp类用法
  4. Linux命令之pstree - 以树状图显示进程间的关系
  5. VS2015编译boost 1.62.0
  6. 首发天玑1200!Redmi电竞旗舰首曝:电池容量或超4500mAh
  7. adx-desc-adtype统计
  8. 【RS|概念】辐射校正和几何纠正
  9. 单片机定时报警C语言程序,单片机控制的简易定时报警器电路设计( - 控制/MCU - 电子发烧友网...
  10. CAD无法打印的问题解决办法
  11. 关于交换机包转发率1.488Mpps是如何计算出来的?
  12. qiime2 学习 测序公司返回合并后的数据后续处理
  13. Webpack4.0各个击破(7)plugin篇
  14. APP地推的一些方式
  15. java定义一个eat方法,java基础5实战开发Day2/方法/2020-04-26
  16. [转载]屏蔽双显卡笔记本的独显
  17. Dflying 陈黎夫谈《持续集成——软件质量改进和风险降低之道》
  18. 5G 频段 频率与Band对应表
  19. 【1】2018校招真题——舞会
  20. 基于Java的开源 Carrot2 搜索结果聚合聚类引擎 2.0发布了

热门文章

  1. Struts2之HttpServletRequest、HttpServletResponse,HttpSession,Parameters处理
  2. Halcon 轮廓合并算子
  3. oracle查询报错clb,Oracle RAC 负载均衡与故障转移(三)
  4. 一道关于String的易错习题
  5. i2c总线注意事项和在linux下使用实战
  6. uva-10887-枚举
  7. Dubbo的微内核机制
  8. 20165231 2017-2018-2 《Java程序设计》第8周学习总结
  9. 在SPA应用中利用JWT进行身份验证
  10. openstack部署中的错误总结