[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-public-FvW9oHgj":3,"public-project-articles-FvW9oHgj":17},{"id":4,"uuid":5,"project_id":6,"title":7,"content":8,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},51,"FvW9oHgj",39,"18. SpringBoot+Vue项目部署上线","\n学生优惠：\n[https:\u002F\u002Fcloud.tencent.com\u002Fact\u002Fcampus?from=19070](https:\u002F\u002Fcloud.tencent.com\u002Fact\u002Fcampus?from=19070)\n\n新人优惠：\n[https:\u002F\u002Fcloud.tencent.com\u002Fact\u002Fpro\u002Fpromotion-cvm?from=21290](https:\u002F\u002Fcloud.tencent.com\u002Fact\u002Fpro\u002Fpromotion-cvm?from=21290)\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694090212533-855b0467-96a9-48e2-b7a1-ee15cbe004db.png#averageHue=%23ecb373&clientId=u4c3de6a6-28ef-4&from=paste&height=694&id=u9cb32a6e&originHeight=868&originWidth=1101&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=55203&status=done&style=none&taskId=udfabe476-94ab-49f8-9810-77606354cc3&title=&width=880.8)\n\n怎么进入自己的服务器\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694090345676-6e641683-4ac8-4df0-a941-14e2de5e326f.png#averageHue=%231c222e&clientId=u4c3de6a6-28ef-4&from=paste&height=445&id=u902c9620&originHeight=556&originWidth=1206&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=85496&status=done&style=none&taskId=u6df9d202-ff77-4930-a4d9-84e66e7c0e4&title=&width=964.8)\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694090364310-19dc24ac-6617-4c32-bef0-734d49e49676.png#averageHue=%232cb887&clientId=u4c3de6a6-28ef-4&from=paste&height=272&id=u0c731806&originHeight=340&originWidth=755&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=18406&status=done&style=none&taskId=u54dde6b4-3090-452c-accf-abdabec399e&title=&width=604)\n\nroot\nAa123456\n\n下载 X-shell 和 Xftp 注意：必须从这个页面下载安装的才可以免费使用。\n[https:\u002F\u002Fwww.xshell.com\u002Fzh\u002Ffree-for-home-school\u002F](https:\u002F\u002Fwww.xshell.com\u002Fzh\u002Ffree-for-home-school\u002F)\n\nx-shell 创建链接\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694090649613-f1f9bf97-891d-4928-8e22-4531f22b4bcc.png#averageHue=%23f0f0ef&clientId=u4c3de6a6-28ef-4&from=paste&height=353&id=u78def002&originHeight=441&originWidth=830&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=30636&status=done&style=none&taskId=ubb748839-dfe2-419b-bac3-e76747f7126&title=&width=664)\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694090682611-ac86db0b-7cbd-4a8d-80be-f13c5fbec88d.png#averageHue=%23f1efef&clientId=u4c3de6a6-28ef-4&from=paste&height=480&id=uc3336154&originHeight=600&originWidth=854&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=45653&status=done&style=none&taskId=uf3cf3007-7883-49ce-b25c-e505efeb271&title=&width=683.2)\n\n## 部署前准备\n\n110.42.217.126\n\n### vue\n\n新建文件 .env.development\\*\\* \\*\\*\n\n```\nVUE_APP_BASEURL='http:\u002F\u002Flocalhost:9090'\n```\n\n.env.production\n\n```\nVUE_APP_BASEURL='http:\u002F\u002F:9090'\n```\n\nmain.js 设置全局变量$baseUrl\n\n```\nVue.prototype.$baseUrl=process.env.VUE_APP_BASEURL\n```\n\nrequest.js\n\n```\nconst request = axios.create({\n    baseURL: process.env.VUE_APP_BASEURL,   \u002F\u002F 后端的接口地址\n    timeout: 30000\n})\n```\n\n文件上传地址修改、导出地址修改，vue 工程全局搜索 **localhost:9090 替换成 $baseUrl**\n\n**:action=\"$baseUrl + '\u002Ffile\u002Fupload'\"**\n**:action=\"$baseUrl + '\u002Fuser\u002Fimport'\"**\n\n**:action=\"$baseUrl + '\u002Ffile\u002Fupload'\"**\n\n打包\nnpm run build\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694091264182-fd2b778d-3f13-4aec-9858-8c6f2b921d5c.png#averageHue=%232e2d2d&clientId=u4c3de6a6-28ef-4&from=paste&height=185&id=ufa136e7e&originHeight=231&originWidth=944&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=25493&status=done&style=none&taskId=u5150c533-648c-4fa5-a077-c2addef1605&title=&width=755.2)\n\n### SpringBoot\n\n打包\nmvn clean package\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694091396506-fe6f7ef0-7272-4be2-8e19-085e9c525dff.png#averageHue=%2355747a&clientId=u4c3de6a6-28ef-4&from=paste&height=377&id=u29f6284a&originHeight=471&originWidth=600&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=52245&status=done&style=none&taskId=u93807c68-babd-4fcd-a03c-2f4ae53a82a&title=&width=480)\n\n## 服务器\n\n### 部署 java\n\n创建文件夹：mkdir -p \u002Fhome\u002Fserver\u002Fhoney2024\n上传 jar 包到服务器 \u002Fhome\u002Fserver\u002Fhoney2024\u002Fjava 目录\n设置 application.yml 覆盖\n\n添加 启动和停止脚本\ncd \u002Fhome\u002Fserver\u002Fhoney2024\u002Fjava\nvi start.sh\n\n```\nNAME=springboot-0.0.1-SNAPSHOT.jar\nnohup java -jar $NAME > server.log 2>&1 &\necho 'start success'\n```\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694091902194-e8147e37-4636-45b0-ac19-e282328cdfd6.png#averageHue=%23080808&clientId=u4c3de6a6-28ef-4&from=paste&height=691&id=u7d4caca2&originHeight=864&originWidth=780&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=16346&status=done&style=none&taskId=ufa11d5d3-91b7-4c8d-91dd-602e92e6980&title=&width=624)\nvi stop.sh\n\n```\nPORT=9090\npid=`netstat -tnlp | grep $PORT | grep -v grep | awk '{print $7}' | awk -F\u002F '{print $1}'`\nif [ ${pid} ]; then\n    kill -9 $pid\n    echo \"kill $PORT\"\nelse\n    echo 'stop sucess!'\nfi\n```\n\n赋权 chmod +x \\*\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694092084228-ddfc8e1b-d095-4ad2-8417-a3c58d65dec8.png#averageHue=%230b0908&clientId=u4c3de6a6-28ef-4&from=paste&height=115&id=ua90f6dad&originHeight=144&originWidth=1023&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=18109&status=done&style=none&taskId=ubd632976-976a-4e56-9c3c-67f2b25de4f&title=&width=818.4)\n\n去除脚本文件里的特殊符号（可选）\n\n> sed -i 's\u002F\\r\u002F\u002F' start.sh\n> sed -i 's\u002F\\r\u002F\u002F' stop.sh\n\n完成后的目录文件：\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694317418089-4b962d2c-6254-47ec-a61d-0faa9bd454f1.png#averageHue=%23f1efed&clientId=u44491e67-8ce4-4&from=paste&height=176&id=u8503ad29&originHeight=220&originWidth=686&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=18101&status=done&style=none&taskId=ub718e537-2b81-44c1-a3c3-9b9af206e07&title=&width=548.8)\n\n### 部署 vue\n\n上传 dist 文件夹到 \u002Fhome\u002Fserver\u002Fhoney2024\u002Fvue\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694317447234-9844c4d5-d8de-4d27-b309-7dfe352510ba.png#averageHue=%23f4f3f1&clientId=u44491e67-8ce4-4&from=paste&height=101&id=u9671ff3b&originHeight=126&originWidth=596&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=7220&status=done&style=none&taskId=uad2ad353-a489-44b6-bbb1-cc91c465d46&title=&width=476.8)\n\n**安装软件**\n从微信粉丝群获取软件安装包 然后上传到服务器的\u002Ftmp 目录下\n软件：**nginx、jdk、mysql**\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694316062538-28ad7d89-6e34-446e-9cb4-19e09f0bbc6d.png#averageHue=%23f5f2f0&clientId=u3a10e668-1a2e-4&from=paste&height=534&id=uba965ed6&originHeight=668&originWidth=914&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=85389&status=done&style=none&taskId=uae9f1392-3880-4ab3-a32d-eb38b1c7a1f&title=&width=731.2)\n\n### 安装 jdk1.8\n\n```\ntar -zxvf \u002Ftmp\u002Fjdk-8u371-linux-x64.tar.gz -C \u002Fusr\u002Flocal\u002F\nmv \u002Fusr\u002Flocal\u002Fjdk1.8.0_371 \u002Fusr\u002Flocal\u002Fjava\n\nvi \u002Fetc\u002Fprofile\n\nexport JAVA_HOME=\u002Fusr\u002Flocal\u002Fjava\nexport PATH=$JAVA_HOME\u002Fbin:$PATH\n\nsource \u002Fetc\u002Fprofile\n\n# 验证\njava -version\n```\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694093943939-e6df9d7e-97d9-436c-b969-33c45ff84168.png#averageHue=%23120f0d&clientId=u4c3de6a6-28ef-4&from=paste&height=90&id=u453a657e&originHeight=113&originWidth=876&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=12930&status=done&style=none&taskId=u2c7cc45e-e117-470e-acdc-601138d8cea&title=&width=700.8)\n\n### 安装 nginx\n\n安装库文件\n\n```\n#安装gcc\nyum install gcc-c++\n\n#安装PCRE pcre-devel\nyum install -y pcre pcre-devel\n\n#安装zlib\nyum install -y zlib zlib-devel\n\n#安装Open SSL\nyum install -y openssl openssl-devel\n```\n\n解压、编译 nginx 并安装\n\n```\nmkdir \u002Fusr\u002Flocal\u002Fnginx\ntar -zxvf \u002Ftmp\u002Fnginx-1.24.0.tar.gz -C \u002Fusr\u002Flocal\u002Fnginx\n\ncd \u002Fusr\u002Flocal\u002Fnginx\u002Fnginx-1.24.0\n# 编译安装\n.\u002Fconfigure --with-http_stub_status_module --with-http_ssl_module\nmake && make install\n```\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694094083742-219c25b7-57f8-4458-a148-a3862e11bbc0.png#averageHue=%23100e0c&clientId=u4c3de6a6-28ef-4&from=paste&height=401&id=uee70f9b2&originHeight=501&originWidth=939&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=39947&status=done&style=none&taskId=u6a7545fd-fee3-4860-8582-1222ab2e24f&title=&width=751.2)\nnginx 命令\n\n```\ncd \u002Fusr\u002Flocal\u002Fnginx\u002Fsbin\n.\u002Fnginx     # 启动\n\nps -ef | grep nginx  # 查看\n.\u002Fnginx -s stop      # 停止\n.\u002Fnginx -s reload    # 重启\n```\n\nps -ef | grep nginx\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694094217603-9c055d5c-e498-43e0-a613-b2fd1cf986f8.png#averageHue=%23110d0b&clientId=u4c3de6a6-28ef-4&from=paste&height=101&id=u7fdc8ea0&originHeight=126&originWidth=1104&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=16348&status=done&style=none&taskId=ufa78098b-14f3-4a04-9077-beb15abeff6&title=&width=883.2)\n\n访问：[http:\u002F\u002F110.42.217.126\u002F](http:\u002F\u002F110.42.217.126\u002F)\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694094343151-1e3bfe48-3055-4fb2-81df-987c77bb2142.png#averageHue=%23f8f7f6&clientId=u4c3de6a6-28ef-4&from=paste&height=275&id=uaae4bef7&originHeight=344&originWidth=856&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=32812&status=done&style=none&taskId=u95d6423c-3f26-402d-b480-f4e7e8b019e&title=&width=684.8)\nnginx 配置\n\n```\nserver {\n    listen       80;\n    server_name  localhost;\n\n    #charset koi8-r;\n\n    #access_log  logs\u002Fhost.access.log  main;\n\n    location \u002F {\n        root   \u002Fhome\u002Fserver\u002Fhoney2024\u002Fvue\u002Fdist;\n        index  index.html index.htm;\n        try_files $uri $uri\u002F \u002Findex.html;\n    }\n}\n```\n\n配置完之后记得重启 nginx\n执行命令重启：\n**cd \u002Fusr\u002Flocal\u002Fnginx\u002Fsbin **\n**.\u002Fnginx -s reload**\n\n**在 Manager 的 mouted 函数里加上这个判断即可 防止用户在未登录的情况下进入首页**\n\n```vue\nmounted() {   \u002F\u002F 页面加载完成之后触发\n  if (!this.user.id) {   \u002F\u002F 当前的浏览器没有用户信息\n    this.$router.push('\u002Flogin')\n  }\n},\n```\n\n改完之后，重新打包 vue 并上传到服务器。\n\n### 安装 mysql\n\nlinux 系统会自动携带一个数据库，我们需要把它给卸载掉\n通过以下代码可以查看 mariadb 并卸载\n\n```\nrpm -qa | grep mariadb\nyum remove -y mariadb-connector-c-3.1.11-2.oc8.1.x86_64\nyum remove -y mariadb-connector-c-config-3.1.11-2.oc8.1.noarch\n```\n\n下载 mysql 并 上传到 \u002Ftmp 目录\n安装 mysql 命令：\n\n```\nmkdir \u002Fdata\u002Fmysql\ntar -zxvf \u002Ftmp\u002Fmysql-5.7.42-el7-x86_64.tar.gz -C \u002Fusr\u002Flocal\nmv \u002Fusr\u002Flocal\u002Fmysql-5.7.42-el7-x86_64 \u002Fusr\u002Flocal\u002Fmysql\n\n# 添加用户组\ngroupadd mysql\nuseradd -r -g mysql mysql\nchown -R mysql.mysql \u002Fusr\u002Flocal\u002Fmysql\nchown -R mysql.mysql \u002Fdata\u002Fmysql\n\n\ncd \u002Fusr\u002Flocal\u002Fmysql\n\u002Fusr\u002Flocal\u002Fmysql\u002Fbin\u002Fmysqld --user=mysql --basedir=\u002Fusr\u002Flocal\u002Fmysql\u002F --datadir=\u002Fdata\u002Fmysql --initialize\n\n#  将mysql加入到服务中\ncp \u002Fusr\u002Flocal\u002Fmysql\u002Fsupport-files\u002Fmysql.server \u002Fetc\u002Finit.d\u002Fmysql\n\n# mysql快捷方式\nln -s  \u002Fusr\u002Flocal\u002Fmysql\u002Fbin\u002Fmysql \u002Fusr\u002Fbin\nln -s \u002Fusr\u002Flib64\u002Flibtinfo.so.6.1 \u002Fusr\u002Flib64\u002Flibtinfo.so.5\nln -s \u002Fusr\u002Flib64\u002Flibncurses.so.6.1 \u002Fusr\u002Flib64\u002Flibncurses.so.5\n```\n\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694095778569-63ea51b7-6015-4e04-a401-55228bc8693b.png#averageHue=%2314110f&clientId=u4c3de6a6-28ef-4&from=paste&height=278&id=uff1f6d9a&originHeight=348&originWidth=1634&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=60079&status=done&style=none&taskId=u6c62d0b3-3919-4d12-9e65-ba93baf58d6&title=&width=1307.2)\n**记住临时密码 osGMitUO\u003C56.**\n\n配置 mysql 配置文件 my.cnf\nvi \u002Fetc\u002Fmy.cnf\n\n```\n[mysqld]\ndatadir=\u002Fdata\u002Fmysql\nbasedir=\u002Fusr\u002Flocal\u002Fmysql\nsocket=\u002Ftmp\u002Fmysql.sock\nuser=mysql\nport=3306\ncharacter-set-server=utf8\n# 取消密码验证\n# skip-grant-tables\n# # Disabling symbolic-links is recommended to prevent assorted security risks\nsymbolic-links=0\n[mysqld_safe]\nlog-error=\u002Fvar\u002Flog\u002Fmysqld.log\npid-file=\u002Fvar\u002Frun\u002Fmysqld\u002Fmysqld.pid\n```\n\n启动 mysql： **service mysql start **\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694096018222-17affe25-001c-4c7c-bd3a-c4d652390c7d.png#averageHue=%2312100e&clientId=u4c3de6a6-28ef-4&from=paste&height=54&id=u23a2241d&originHeight=68&originWidth=786&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=6871&status=done&style=none&taskId=ue5510f79-0fe8-433d-80f9-ed30f3be2a7&title=&width=628.8)\n开机启动: **chkconfig mysql on **\n登录 mysql： **mysql -uroot -p **\n输入临时密码进入 mysql\n\n修改密码并设置权限：\n\n```shell\nSET PASSWORD = PASSWORD('123456');\n\nuse mysql;\nupdate user set host ='%'where user ='root' and host ='localhost';\nflush privileges;\nexit;\n```\n\n使用 Navicat 连接 mysql\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694097324996-deb32a8e-2459-452d-9d9b-e8989b4b9492.png#averageHue=%23fbfbfb&clientId=uefaf7892-18c0-4&from=paste&height=315&id=u51571473&originHeight=394&originWidth=654&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=11831&status=done&style=none&taskId=ud3c7b1c9-cc97-4375-8ee4-7b9236d6cdb&title=&width=523.2)\n防火墙设置一下：\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694097313814-a46dd1e9-9a41-426f-bfbb-0a669476d8d6.png#averageHue=%237ed6a5&clientId=uefaf7892-18c0-4&from=paste&height=167&id=u4ecb219c&originHeight=209&originWidth=1546&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=16543&status=done&style=none&taskId=u686b02c9-f73d-443a-ba5a-356e40506d8&title=&width=1236.8)\n\n新建数据库：honey2024，导入数据库脚本。\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694317356105-a9a83390-6768-4b4e-b2c8-1550bd94f653.png#averageHue=%23f6f6f6&clientId=u44491e67-8ce4-4&from=paste&height=392&id=u04ecec7e&originHeight=490&originWidth=560&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=17132&status=done&style=none&taskId=uccb6a161-9632-4e6f-ba2d-3063c121bbc&title=&width=448)\n\n### 启动后台程序\n\n修改 application.yml 里面的 ip 为服务器的公网 IP\n启动程序：\n\n```shell\ncd \u002Fhome\u002Fserver\u002Fhoney2024\u002Fjava\n.\u002Fstart.sh\n```\n\n实时查看日志：**tail -100f server.log**\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694097566428-0c3f406f-6676-4f45-b835-219d48f9167d.png#averageHue=%230b0908&clientId=uefaf7892-18c0-4&from=paste&height=617&id=u3bcda21f&originHeight=771&originWidth=1681&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=82417&status=done&style=none&taskId=u82700776-1699-4751-b058-6bfe45bc810&title=&width=1344.8)\n\n设置防火墙端口 9090\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2023\u002Fpng\u002F751015\u002F1694097633194-794e61fc-2565-4845-bcf1-52b915deb83e.png#averageHue=%23e9cc94&clientId=uefaf7892-18c0-4&from=paste&height=185&id=u866274cd&originHeight=231&originWidth=1609&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=20174&status=done&style=none&taskId=uf254fd31-90a8-45b2-8595-c25a94559d3&title=&width=1287.2)\n\n至此，全部完成，恭喜你！\n\n---\n\n浏览器访问：\n[http:\u002F\u002F121.4.123.248\u002F](http:\u002F\u002F121.4.123.248\u002F)\n注册账号即可访问，管理员账号：admin admin\n（测试服务器，谢绝压测）\n","coding",1,2845,73,"2024-04-16 02:32:22","2026-05-03 22:49:02","【青哥带小白做毕设2024】完整教程资料汇总","qingge-graduation-project-2024",{"project":18,"items":19},{"id":6,"title":15,"slug":16},[20,28,35,42,49,56,63,69,76,83,90,97,104,111,118,125,132,139,146,147,154,161,168],{"id":21,"uuid":22,"project_id":6,"title":23,"type":9,"status":10,"public_enabled":10,"views":24,"sort":25,"created_at":26,"updated_at":27,"project_title":15,"project_slug":16},33,"R1oMCsCX","00. 从0开始带小白做SpringBoot+Vue+uniapp微信小程序实战项目",12130,55,"2025-04-08 11:28:17","2026-05-07 15:33:28.189425+00",{"id":29,"uuid":30,"project_id":6,"title":31,"type":9,"status":10,"public_enabled":10,"views":32,"sort":33,"created_at":34,"updated_at":14,"project_title":15,"project_slug":16},34,"s3u3u8W7","01. 网页布局技巧",3326,56,"2025-04-08 11:28:13",{"id":36,"uuid":37,"project_id":6,"title":38,"type":9,"status":10,"public_enabled":10,"views":39,"sort":40,"created_at":41,"updated_at":14,"project_title":15,"project_slug":16},35,"21zUHQYS","02. JavaScript入门",2017,57,"2025-04-08 11:27:55",{"id":43,"uuid":44,"project_id":6,"title":45,"type":9,"status":10,"public_enabled":10,"views":46,"sort":47,"created_at":48,"updated_at":14,"project_title":15,"project_slug":16},36,"4XVgY9Ti","03. Vue脚手架搭建",3719,58,"2025-04-08 11:27:46",{"id":50,"uuid":51,"project_id":6,"title":52,"type":9,"status":10,"public_enabled":10,"views":53,"sort":54,"created_at":55,"updated_at":14,"project_title":15,"project_slug":16},37,"S8vLLLvk","04. Git速成，推送代码到云端",1585,59,"2025-04-08 11:27:41",{"id":57,"uuid":58,"project_id":6,"title":59,"type":9,"status":10,"public_enabled":10,"views":60,"sort":61,"created_at":62,"updated_at":14,"project_title":15,"project_slug":16},38,"9EbwnGDp","05. 网页布局神器ElementUI速成",2670,60,"2025-04-08 11:27:37",{"id":6,"uuid":64,"project_id":6,"title":65,"type":9,"status":10,"public_enabled":10,"views":66,"sort":67,"created_at":68,"updated_at":14,"project_title":15,"project_slug":16},"tmzahWer","06. Vue管理系统速成",3744,61,"2025-04-08 11:27:32",{"id":70,"uuid":71,"project_id":6,"title":72,"type":9,"status":10,"public_enabled":10,"views":73,"sort":74,"created_at":75,"updated_at":14,"project_title":15,"project_slug":16},40,"2agqAUQK","07. SpringBoot速成",3654,62,"2025-04-08 11:27:27",{"id":77,"uuid":78,"project_id":6,"title":79,"type":9,"status":10,"public_enabled":10,"views":80,"sort":81,"created_at":82,"updated_at":14,"project_title":15,"project_slug":16},41,"SXPAzgy7","08. Http扫盲，让小白也能听懂",2337,63,"2025-04-08 11:27:20",{"id":84,"uuid":85,"project_id":6,"title":86,"type":9,"status":10,"public_enabled":10,"views":87,"sort":88,"created_at":89,"updated_at":14,"project_title":15,"project_slug":16},42,"ostBIxAV","09. SpringBoot集成Mybatis实现增删改查",4190,64,"2025-04-08 11:27:13",{"id":91,"uuid":92,"project_id":6,"title":93,"type":9,"status":10,"public_enabled":10,"views":94,"sort":95,"created_at":96,"updated_at":14,"project_title":15,"project_slug":16},43,"6Sv7afpa","10. Vue封装前后端数据交互工具",3716,65,"2024-04-16 02:33:13",{"id":98,"uuid":99,"project_id":6,"title":100,"type":9,"status":10,"public_enabled":10,"views":101,"sort":102,"created_at":103,"updated_at":14,"project_title":15,"project_slug":16},44,"d53BPIQs","11. Vue登录（含验证码）、注册页面开发",4867,66,"2024-04-16 02:33:08",{"id":105,"uuid":106,"project_id":6,"title":107,"type":9,"status":10,"public_enabled":10,"views":108,"sort":109,"created_at":110,"updated_at":14,"project_title":15,"project_slug":16},45,"m033ng06","12. SpringBoot集成JWT token实现权限验证",3243,67,"2024-04-16 02:33:00",{"id":112,"uuid":113,"project_id":6,"title":114,"type":9,"status":10,"public_enabled":10,"views":115,"sort":116,"created_at":117,"updated_at":14,"project_title":15,"project_slug":16},46,"7xzyVD06","13. SpringBoot+Vue实现单文件、多文件上传和下载",2784,68,"2024-04-16 02:32:52",{"id":119,"uuid":120,"project_id":6,"title":121,"type":9,"status":10,"public_enabled":10,"views":122,"sort":123,"created_at":124,"updated_at":14,"project_title":15,"project_slug":16},47,"BdOLUenp","14. 多角色登录（Vue-Router路由守卫）",2318,69,"2024-04-16 02:32:39",{"id":126,"uuid":127,"project_id":6,"title":128,"type":9,"status":10,"public_enabled":10,"views":129,"sort":130,"created_at":131,"updated_at":14,"project_title":15,"project_slug":16},48,"2Wkx3igg","15. Vue个人信息修改、修改密码、重置密码",2092,70,"2024-04-16 02:32:33",{"id":133,"uuid":134,"project_id":6,"title":135,"type":9,"status":10,"public_enabled":10,"views":136,"sort":137,"created_at":138,"updated_at":14,"project_title":15,"project_slug":16},49,"BDvVa4By","16. SpringBoot+Vue管理系统实现增删改查",2598,71,"2024-04-16 02:32:29",{"id":140,"uuid":141,"project_id":6,"title":142,"type":9,"status":10,"public_enabled":10,"views":143,"sort":144,"created_at":145,"updated_at":14,"project_title":15,"project_slug":16},50,"FJVl0rCu","17. SpringBoot+Vue实现数据的批量导入和导出",1684,72,"2024-04-16 02:32:26",{"id":4,"uuid":5,"project_id":6,"title":7,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},{"id":148,"uuid":149,"project_id":6,"title":150,"type":9,"status":10,"public_enabled":10,"views":151,"sort":152,"created_at":153,"updated_at":14,"project_title":15,"project_slug":16},52,"xyqrxxiR","19. SpringBoot+Vue集成富文本编辑器",1499,74,"2024-04-16 02:32:18",{"id":155,"uuid":156,"project_id":6,"title":157,"type":9,"status":10,"public_enabled":10,"views":158,"sort":159,"created_at":160,"updated_at":14,"project_title":15,"project_slug":16},53,"XAaCXz8W","20. SpringBoot+Vue集成系统公告",1043,75,"2024-04-16 02:32:14",{"id":162,"uuid":163,"project_id":6,"title":164,"type":9,"status":10,"public_enabled":10,"views":165,"sort":166,"created_at":167,"updated_at":14,"project_title":15,"project_slug":16},54,"2havlmaC","21. SpringBoot+Vue集成AOP系统日志",1159,76,"2024-04-16 02:32:11",{"id":25,"uuid":169,"project_id":6,"title":170,"type":9,"status":10,"public_enabled":10,"views":171,"sort":172,"created_at":173,"updated_at":14,"project_title":15,"project_slug":16},"ObvLqJdX","22. SpringBoot+Vue实现Echarts数据报表（柱状图、饼图、折线图）",1688,99,"2024-04-16 02:30:25"]