vue-router的HTML5历史模式设置

  

VUE是当下最火爆的前端框架之一,vue-router是VUE项目中几乎都会用到的组件,然而体验一时爽,其实坑不少。本篇经验将详细介绍vue-router的两种模式效果和开发测试环境下的问题,并给出解决方案。

  

vue-router的HTML5历史模式,这种模式充分利用历史。pushState API来完成URL跳转而无须重新加载页面。

        const路由器=new VueRouter ({   模式:“历史”,   路线:[…]   })   之前      

当你使用历史模式时,URL就像正常的URL,例如http://yoursite.com/user/id,就是长这样的!

  

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

  

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

  

目前后端服务器有Apache, nginx,原生节点。js,基于节点。js的表达,Internet信息服务(IIS),球童,重火力点主机等。

  

先给一个官方标准版配置的传送门,请戳这里→https://router.vuejs.org/zh/guide/essentials/history-mode.html
  

  

既然是官方给出的配置,那肯定就会说的很官方咯~

  

按照官方给出的示例,将道理是成功的,但是官方给出的只局限于这个项目在服务器的根目录下!
  如果你的项目没有放在根目录下,那么就是这么的不讲道理。

  

下面是在实际开发中碰到的问题。

  

我们的后端服务器是nginx,所以按照官方的给出的配置,找到nginx.conf,照抄代码,修改完后重启服务器,讲道理是成功的。

        服务器   {   听80;   server_name oursite.com;   位置/测试/{   别名/usr/local/test/;   指数指数。htm index . html。   #上面的就是一些常规配置、下面这个才是重点   try_files uri uri//index . html美元;      #这里没有采用官方给出处理404错误页面的方案   #方案一(把所有没有后缀名的请求如果404年都跳转到index . html,我们没有采用)   # error_page 404/测试/index . html;      #方案二(404的方式,不是特别完美。会有浏览器留下404的状态(容易被第三方劫持),以下方式可以避免被第三方劫持!)   如果(!- e request_filename美元){   重写^/(. *)/测试/索引。html去年;   打破;   }   }   }      之前      

但是,事实就是这么的不讲道理,我们并没有成功!这就令人很是郁闷了,心中一万只神兽羊驼,奔腾而过~为什么没有成功呢,都是按部就班做的呀,完全不讲道理!

  

而真相只有一个,那就是~ ~ ~

  

<>强路由文件中的路径有问题

        const路由器=new VueRouter ({   模式:“历史”,   路线:[   {路径:/测试/,组件:YourComponent},   {路径:/测试/,组件:YourComponent},   {路径:/测试/b: x,组件:YourComponent}   ]   })   之前      

在路由文件中所有的路径前面加上服务器下项目所在的文件名即可,当然也包括& lt; router-link>和。美元router.push()中的路径,不然又是不讲道理的。

  

这只是在nginx服务器下的一种解决方案,至于别的服务器应该也是同理的。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

vue-router的HTML5历史模式设置