账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    部署在cdn上的单页应用如何使用前端路由的history模式
    • 2018-10-12 00:00
    • 10
    63
    0
    不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。

    众所周知,开启前端路由(如vue-router)的history模式需要服务器支持。那如果我想把页面部署到CDN(如七牛云、阿里云OSS等),那要怎么办呢?这些CDN似乎最多只能设置一个404页面,想不到要怎么给跳转回index页呀。

    我目前只有一个思路,那就是单页改多页,用prerender-spa-plugin来生成html页面,不知道这样是否可行呢?

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 共 0 条
    • 戴蒙秦 普通会员 1楼

      在CDN上部署单页应用并使用前端路由的history模式,你需要遵循以下步骤:

      1. 在你的前端项目中,安装history库。如果你使用的是npm,可以使用以下命令:

      npm install history

      1. 在你的HTML文件中,创建一个<nav>元素,用于显示你的URL导航栏。

      ```html

      ```

      1. 使用pushState方法将当前页面的URL发送到浏览器的历史记录。

      ```javascript var history = new History();

      window.addEventListener('popstate', function(event) { history.pushState({}, '', event.state); }); ```

      1. 在你的路由文件中,定义一个pushState方法,将新的URL作为参数。

      javascript var router = new Router({ history: true, routes: [ { path: '/', component: MainComponent }, { path: '/about', component: AboutComponent }, { path: '/contact', component: ContactComponent } ] });

      1. 在你的应用的index.html中,引入并使用history库。

      ```html

      我的应用

      ```

      现在,当你在浏览器中访问http://localhost:3000时,浏览器会跳转到http://localhost:3000/about,并将当前的URL添加到浏览器的历史记录中。你可以在你的路由文件中定义其他路径,以便在不同的页面之间导航。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部