最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    正文概述 掘金(树懒的梦想)   2021-01-19   701

    使用nuxt.js 可以解决vue项目中的SEO优化+首屏加载时间长出现白屏的问题

    实际开发中,简单项目使用nuxtjs默认的路由规则就可以
    但是在复杂的项目内,用nuxtjs默认的路由规则反而会变得十分麻烦,因此在复杂的项目内,通常通过手动配置nuxtjs的路由规则来实现
    手动配置nuxtjs的路由规则:
    1、在项目的根目录下(和package.json同一级目录下)新建一个文件,文件名叫:nuxt.config.js
    2、在nuxt.config.js文件写输入如下代码:

    export default {
      router: {
        // 自定义nuxtjs的路由规则
        extendRoutes(routes, resolve) {
          // 清除 Nuxt.js 基于 pages 目录默认生成的路由表规则
          // 把nuxtjs中默认的路由规则全部删除不要了
          routes.splice(0)
          // 添加自己配置的路由规则给nuxtjs来使用,结构和vue原始的路由结构一样
          routes.push(
            ...[
              {
                path: '/',
                component: resolve(__dirname, 'pages/layout/'), // nuxtjs中的页面组件
                children: [
                  {
                    path: '', // 默认子路由
                    name: 'home',
                    component: resolve(__dirname, 'pages/home/'), // nuxtjs中被页面组件,包裹的子组件(路由组件)
                  },
                ],
              },
            ]
          ) 
        },
      },
    }
    
    

    nuxtjs项目在服务器端发布部署->最简单的部署项目的方式

    • (1) 配置host+port (在nuxt.vonfig.js文件中配置)
    server: {
          host: '0.0.0.0',
          port:3000
    },
    
    • (2) 压缩发布包,把打包后的项目的一些文件进行压缩,文件包括:

    把上面这几个文件、文件夹,进行压缩,然后把压缩包传递给服务器端

    • (3) 把发布包传到服务器端(用xftp软件、用git软件、用xshell中的linux的命令)

    (3-1) 在自己电脑上连接上远程的服务器

    (3-2) 在远程的服务器的根目录下创建一个文件夹:

    • (4) 在服务器端解压
    • (5) 在服务器端安装依赖

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    • (6) 在服务器端启动服务看效果

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    nuxtjs项目在服务器端发布部署->使用PM2启动Node服务

    上面的这种方式,在服务端启动的项目会占用命令行
    命令行窗口一但关闭或者命令一但退出,项目就无法访问了
    为了解决这个问题,我们可以项目运行在服务器的后台进程中,因此就需要使用PM2这个工具了

    使用pm2启动服务端项目

    pm2的githup仓库地址:https://github.com/Unitech/pm2
    官方文档:https://pm2.io/

    • (1) 在服务器端安装pm2
    • (2) 在服务器端使用pm2启动项目【pm2 start 脚本路径/启动项目的npm命令 】
    • (3) 在浏览器输入【服务器的IP地址:端口号】 查看效果

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    • (4) 在服务器端关闭pm2启动的项目
    • (5) pm2的常用命令

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    nuxtjs项目在服务器端发布部署->现代化的部署方式->自动化部署(CI/CD)

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    CI/CD服务

    环境准备

    • (1) 有一台Linux系统的服务器
    • (2) 把代码提交到GitHub远程仓库
    • (3) 配置GitHub Access Token如下:

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    然后会生成一个令牌(下方截图),这个令牌要保存好,因为后期就再也看不见了
    如果没有保存,后期忘记了,只能重新在生成一个新的令牌了

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    • (4) 配置GitHub Actions 执行脚本
    • (5) 在项目的根目录下配置PM2的配置文件,文件名字叫【pm2.config.json】,代码如下:
    {
     "apps": [
       {
         "name": "RealWorld",
         "script": "npm",
         "args": "start"
       }
     ]
    }
    
    • (6) 把本地代码提交到远程仓库
    • (7) 提交更新去开始自动化部署
    • (8) 查看自动化部署的进度和状态

    点击Aaction按钮后,页面的截图如下所示,说明自动化部署成功: 使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    • (9) 访问网站
    • (10) 项目有调整,重复执行(6)~(10)

    购买完服务器后主机后,【首次登陆 ssh root@主机ip】 提示ssh_exchange_identification: read: Connection reset by peer

    • 尝试的解决办法:https://www.jianshu.com/p/84dce470178c
    • 尝试的解决办法:https://www.cnblogs.com/Tanwheey/p/11976178.html
    • 还有一种可能就是公司网络限制了,只能用手机流量去测试一下是否可以成功登录

    题外话:
    CentOS的回收站目录应该是这个路径:cd ~/.local/share/Trash/files/ 这个路径是隐藏属性的
    删掉一个目录下所有的文件的命令: rm -rf *


    起源地下载网 » 使用nuxtjs实现vue项目的同构渲染(客户端渲染+服务器端渲染)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元