目录

1.简单创建Nuxt项目

2.vue迁移nuxt

3.nuxt学习

4.配置nuxt在linux中的运行环境

4.1node

4.2nginx

5.部署在linux服务器

6.ssr渲染,利于seo


自己的网站随着时间,已经上了百度排名

南京市江宁区金瑞祥贴金工艺厂

关键词:贴金箔

jrxtiejin.com

jinruixiang.top

1.简单创建Nuxt项目

首先配置全局nuxt脚手架

npm install -g create-nuxt-app

在你想要的目录下创建nuxt项目

npx create-nuxt-app seo

我选择的如下

这是一个插件,类型于message(element-ui),安装如下

npm install @nuxtjs/toast

然后在config配置

  plugins: [{ src: "~/plugins/ElementUI", ssr: true },{ src: '~/plugins/main', ssr: true },{ src: "@plugins/vue-quill-editor", ssr: false },],

2.vue迁移nuxt

具体细节不说了,我就是参考如下链接,有效

vue-cli3整体迁移至服务端渲染nuxtjs

vue项目改造nuxt 利于seo - BlancheWang - 博客园

vue-cli3整体迁移至服务端渲染nuxtjs - 古兰精 - 博客园

我选择的是把根目录变成src那个方案

附上我的nuxt.config.js和目录结构参考

export default {server:{port:3000,host:'0.0.0.0'},srcDir: 'src/',mode: 'universal',// Global page headers: https://go.nuxtjs.dev/config-headhead: {title: '金瑞祥贴金首页-专业贴金箔-贴金箔价格-大理石刻字[不满意不收费]',htmlAttrs: {lang: 'en'},meta: [{ charset: 'utf-8' },{ name: 'viewport', content: 'width=device-width, initial-scale=1' },{ hid: 'description', name: 'description', content: '「经营范围~地道」:【贴金装潢】|【佛像贴金】|【大理石贴金】|【大理石刻字】|【庙宇装潢】|【酒店贴金】|【金字招牌】|【网站工程】 「十年老厂」 「联系电话」:13951638402"' },{hid:'keywords',name:'keywords',content:'贴金箔,刻字,佛像贴金,公司门牌,贴金工艺'},{ name: 'format-detection', content: 'telephone=no' }],link: [{ rel: 'icon', type: 'image/x-icon', href: '~/static/favicon.ico' }]},// Global CSS: https://go.nuxtjs.dev/config-csscss: ["element-ui/lib/theme-chalk/index.css","~/assets/css/global.css",'~/assets/font/iconfont.css','quill/dist/quill.snow.css','quill/dist/quill.bubble.css','quill/dist/quill.core.css'],// Plugins to run before rendering page: https://go.nuxtjs.dev/config-pluginsplugins: [{ src: "~/plugins/ElementUI", ssr: true },{ src: '~/plugins/main', ssr: true },{ src: "@plugins/vue-quill-editor", ssr: false },],// Auto import components: https://go.nuxtjs.dev/config-componentscomponents: true,// Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modulesbuildModules: [],// Modules: https://go.nuxtjs.dev/config-modulesmodules: ['@nuxtjs/toast','@nuxtjs/axios','@nuxtjs/router'],toast: {position: 'top-center',duration: 2000},axios: {proxy: true, //开启代理credentials: true, //跨域请求需使用凭证},proxy: [['/api', {target: 'http://127.0.0.1:9000', // (后端请求地址)changeOrigin: true,pathRewrite: { '^/api': '' }}]],// Build Configuration: https://go.nuxtjs.dev/config-buildbuild: {}
}

对应目录结构如下

3.nuxt学习

推荐链接,觉得不错,不是每个知识点都测过

值得注意一点就是:created里面调用this.$content.xxxx.xxx(定义的类似于常量的)

如果那个main.js文件没有被ssr:true那么,就无法获取this.$content.xxxx.xxx

  plugins: [{ src: "~/plugins/ElementUI", ssr: true },{ src: '~/plugins/main', ssr: true },{ src: "@plugins/vue-quill-editor", ssr: false },],

nuxt搭建高能SEO商城(一) - 知乎

上面这个值得注意一点就是asyncData用法

https://www.jb51.net/article/166900.htm

上面的知识点不少

4.配置nuxt在linux中的运行环境

4.1node

在linux中下载node,跟着步骤不会报错的,路径都可以成功

wget https://npm.taobao.org/mirrors/node/v14.15.4/node-v14.15.4-linux-x64.tar.xz

解压

xz -d node-v14.15.4-linux-x64.tar.xz
tar -xvf node-v14.15.4-linux-x64.tar

软链接

ln -s /usr/local/node-v14.15.4-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node-v14.15.4-linux-x64/bin/npm /usr/local/bin/npm
node -v

pm2安装

ln -sf /usr/local/node-v14.15.4-linux-x64/bin/pm2 /usr/local/bin/pm2
pm2 list

简单操作

查看当前守护进程 :pm2 list
停止所有的应用程序:pm2 stop all
停止某个应用程序:pm2 stop id
重启所有应用程序:pm2 restart all
关闭并删除所有应用:pm2 delete all
删除指定应用:pm2 delete id

4.2nginx

nginx安装搭建Nginx服务器_江河地笑的博客-CSDN博客

ftp资源服务器那,可以不配,直接放在文件里也可以

ftp资源服务器 搭建FTP资源服务器_江河地笑的博客-CSDN博客

只需要改点nginx.conf,代码如下

# nuxt start
upstream nuxttest{ #分配需要代理的服务server localhost:3000; #代理本地的nuxt服务
}
server {listen 80;server_name jinruixiang.top; #你的域名location / {proxy_pass http://nuxttest; # 代理upstream模块(这里不能直接代理端口否则_nuxt文件目录无法找到)index index.html index.htm;# try_files $uri $uri/ /index.html; #解决页面刷新404问题}# 这边是我配置的ftp资源服务器,搭建在我博客里location /files {alias  /home/user-file/files;}}
# nuxt end

5.部署在linux服务器

首先把前端nuxt项目下的几个文件放到linux中,放在一个文件夹下

再依次执行

npm install

npm start (属于一关闭服务器就打不开网站了)

用pm2管理(持久):pm2 start npm --name 你项目的名称 -- run start

我后端是用springboot写的打成jar包放在服务器里是9000端口

nohup java  -jar xxx.jar &

然后浏览器输入jinruixiang.top

可以了,这个nuxt我才学了一天多,还有很多不太懂的地方,如果有写错的地方,希望可以斧正!

6.ssr渲染,利于seo

优化seo基础分为两步,第一步是tdk,懂得都懂,就是标题描述关键字,Nuxt好设置呢,可以全局设置也可以局部设置,无需其他操作

全局

export default {server:{port:3000,host:'0.0.0.0'},srcDir: 'src/',mode: 'universal',// Global page headers: https://go.nuxtjs.dev/config-headhead: {title: '金瑞祥贴金首页-专业贴金箔-贴金箔价格-大理石刻字[不满意不收费]',htmlAttrs: {lang: 'en'},meta: [{ charset: 'utf-8' },{ name: 'viewport', content: 'width=device-width, initial-scale=1' },{ hid: 'description', name: 'description', content: '「经营范围~地道」:【贴金装潢】|【佛像贴金】|【大理石贴金】|【大理石刻字】|【庙宇装潢】|【酒店贴金】|【金字招牌】|【网站工程】 「十年老厂」 「联系电话」:13951638402"' },{hid:'keywords',name:'keywords',content:'贴金箔,刻字,佛像贴金,公司门牌,贴金工艺'},{ name: 'format-detection', content: 'telephone=no' }],link: [{ rel: 'icon', type: 'image/x-icon', href: '~/static/favicon.ico' }]},
}

局部

export default {head: {title: '金瑞祥贴金留言页-贴金价格留言-贴金联系方式-老板评价',meta: [{hid: 'description',name: 'description',content: '金瑞祥贴金经营数十年,不满意不收费,精通【贴金装潢】|【佛像贴金】|【大理石贴金】|【大理石刻字】|【庙宇装潢】'},{hid: 'keywords',name: 'keywords',content: '南京佛像贴金,公司门牌,刻字'}],},
}

第二步是ssr服务端渲染,也就是动态页面可以提前渲染

比如我这个留言页面,如果我不进行ssr渲染,我这个div标签里面就没有留言的信息,如果我进行ssr服务端渲染,div里面就填充了从数据库获取过来的数据,如下图所示(Safari浏览器,来源标签里面的文件,div内容是处于倒数几十行)

如何做到呢?

  <div class="comment" v-for="(item, index) in comment_list" :key="index"><el-imageclass="header_img":src="require(`@/assets/img/random_header_img/${item.headerImg}.png`)"alt="随机头像"></el-image><span class="phone">{{ item.username | mobilePhoneFilter }}</span><p class="text">{{ item.content }}</p><p class="time">{{ item.createTime }}</p></div>//上面这是我如何用这些数据
//下面是使用asyncData提前渲染import axios from 'axios'
export default {async asyncData() {let  queryInfo= {query: "",pageNum: 1,pageSize: 6,}let rs = await axios.get("/api/comment/all", {params:{...queryInfo}});return {comment_list:rs.data.comments,total:rs.data.total};},
}

然后给大家整个更复杂点,比如是文章列表页面,点击文章标题进入详情,这里采用的是路由传参id嘛,既然asyncData无法获取this.route。。。就用asyncData中的context

export default {async asyncData(context) {console.log(context.params.id);let rs = await axios.get("/api/article/articleDetails", {params: {id: context.params.id,},});let article = rs.data.article;let nextArticle = {};let preArticle = {};if (rs.data.nextArticle !== null) {nextArticle = rs.data.nextArticle;} else {nextArticle.title = "已经是最后一篇了";}if (rs.data.preArticle !== null) {preArticle = rs.data.preArticle;} else {preArticle.title = "已经是第一篇了";}return {article: article,nextArticle: nextArticle,preArticle: preArticle,};},

对应实现的网站是金瑞祥贴金首页-专业贴金箔-贴金箔价格-大理石刻字[不满意不收费]

希望可以给大家带来帮助,喜欢就点个赞吧

Nuxt学习(vue项目移植)相关推荐

  1. Vue基础Day_01学习+Vue项目创建报错(true` in `“vueCompilerOptions“` property)解决方案

    Vue_Study01 1.Vue是什么? 1.1-Vue怎么学 Vue是在工程化的环境下进行学习的 1.2-Vue开发方式 1.3-Vue脚手架项目创建 目录 1.x-创建工程文件报错解决方案 注意 ...

  2. Vue学习--Vue项目根目录介绍(1)

    文章目录 前言 一.build文件夹--webpack 配置目录 二.mock文件夹--生成随机数据,拦截ajax请求 三.node_modules--npm 加载的项目依赖模块 四.public文件 ...

  3. Vue.js学习系列七——Vue服务器渲染Nuxt学习

    我又回来啦~这次我们来学习Vue的服务器渲染SSR. 关于SSR的文章网上很多,一开始看得我云里雾里.然后去Vue.js 服务器渲染指南和nuxt官网看了看,发现文章大多都是搬运官网的内容,真正讲的清 ...

  4. vue项目打包部署linux_Vue项目打包部署到Nginx服务器

    "随着前后端分离项目的流行,vue项目开发部署也成为了前端人员必备技能:本文将带你学习vue项目部署及遇到的各种坑." 关于vue项目部署不得不提的是配置文件vue.config. ...

  5. vue项目使用tinymce

    前言: 之前没用过富文本编辑器,最近项目中要用到富文本编辑器,而且要能上传图片,编写表格,就只好各种查文档,百度搜,本来用的是vue-quill-editor,可惜这个编辑器不能编写表格(也可能只是我 ...

  6. vue项目打包与配置-学习笔记

    文章目录 vue项目打包与配置-学习笔记 前端打包 打包的代码如何运行 打包指定不同的环境变量(开发,测试) 打包手动配置文件 打包压缩,大文件处理 gzip进一步压缩 打包app 打包部署模式 vu ...

  7. Vue学习笔记:使用CLI构建Vue项目

    Vue学习笔记:使用CLI构建Vue项目 一.安装Vue CLI 要用到集成在node.js里的npm来安装Vue CLI. 1.下载并安装node.js 2.配置node.js的环境变量 3.启动命 ...

  8. VUE项目学习(三):win10版nginx部署vue项目

    VUE项目学习(三):win10版nginx部署vue项目 niginx的安装和启停操作参照博客:https://blog.csdn.net/qq_26666947/article/details/1 ...

  9. vue2.0学习——使用webstorm创建一个vue项目

    背景:小白自学vue,翻阅了好多大神的博客,看了网上很多的视频,过程很吃力,好在功夫不负有心人,磕磕绊绊的也算入门了,现为自己vue的学习阶段做个小小的总结.vue2.0的基础知识的总结暂时不总结成文 ...

最新文章

  1. SQL 基础之用户角色日常操作(十六)
  2. jQuery.sap.require
  3. P2480 [SDOI2010]古代猪文(数论好题)
  4. Vuejs 计算属性
  5. 机器学习实战10-Artificial Neural Networks人工神经网络简介(mnist数据集)
  6. 小程序开发工具不显示tobar图标
  7. ssh服务及安全配置
  8. Javascript 中调参数的脚本onclick=select(this) this 怎么解释
  9. matlab中怎样提取结构体下的数据库,MATLAB如何提取结构体中数据
  10. 好文汇总(不断更新)
  11. 修改linux的防火墙
  12. poj2054 Color a Tree
  13. 数据库系统-数据库设计
  14. atk-hc05 蓝牙
  15. u盘需要计算机管理权限,u易u盘需要管理员权限的文件怎么删除
  16. 微信开发遇到的那些坑
  17. live2dviewer android,Live2DViewerEX
  18. 如何下载blob:https://www.bilibili.com/的视频
  19. AI RoboForm 7.3.2发布[附pro破解方法]
  20. 解决Chrome 70版本以后谷歌不再信任赛门铁克证书问题

热门文章

  1. 【技巧】windows11任务栏无法打开任务管理器的解决办法
  2. Could not install the app on the device, read the error above for details. Make sure you have an And
  3. 如何使用cocos2dx 制作一个多向滚屏坦克类射击游戏-第二部分
  4. 用智能TFT液晶模块这种串口屏做产品界面设计太简单了,大大的节省了开发时间...
  5. 数据可视化教程作业打卡-第四回:文字图例尽眉目
  6. android 阅读模式吗,在Android或iOS上使用阅读模式来查看网页 | MOS86
  7. 初学C++之——do while循环语句
  8. 好嗨游戏:20款史上最佳的MMORPG游戏,看看有没有你知道的?
  9. JSON-LIB 的使用指南
  10. End-to-end people detection in crowded scenes