吃灰的云主机不要忘,部署个人博客,隔壁开发都馋哭了(中)

简介: 笔者置办个人博客的技术选型: 简洁:界面简洁,排版合理,不需要花里花哨; 简单:上手简单,开箱即用,输出文章即可,无需过于关注实现细节; 快:加载快,性能高效,移动端适配(地铁上也可以康康);

3) 添加导航栏nav


修改 → docs/.vuepress/config.js


themeConfig: {
    // 添加导航栏
    nav: [
        { text: '主页', link: '/' },
        { text: 'Android', 
            items: [
                {text: '源码', link: '/android/sourcecode/'},
                {text: '架构', link: '/android/architecture/'},
                {text: '逆向', link: '/android/hook/'}
            ]
        },
        { text: 'Github', link: 'https://github.com/coder-pig' },
        { text: '关于我', link: '/other/aboutme.md' },
    ],
}


看下运行结果:


网络异常,图片无法展示
|


基础配置的示例就说这些,接着说下抽取配置,实现模块化。


⑤ 配置抽取


配置的东西全写在config.js中,后续随着博客文章数量及分类增多,维护起来不怎么方便。


可将对应的属性抽取出来,放到一个单独的js文件中,config.js中去引用,示例如下:


网络异常,图片无法展示
|


// head.js
module.exports =[
    ['link', { rel: 'icon', href: '/img/favicon.ico' }]
]
// nav.js
module.exports = [
    {
        text: '首页', link: '/'
    },
    {
        text: 'Python',
        items: [
            {text :'基础', link: '/python/base'},
            {text :'爬虫', link: '/'},
            {text :'Web', link: '/'},
            {text :'机器学习', link: '/'},
        ]
    },
]
// config.js中引用
const navConf = require('./config/nav')
const headConf = require('./config/head')
module.exports = {
    title: 'CoderPig的小世界',  // 网站标题
    description: '吾日三省吾身',    // 网站描述  
    dest: './ROOT',  // 设置输出目录
    plugins: [],
    head: headConf,
    themeConfig: {
        nav: navConf,
        sidebarDepth: 2,
        lastUpdated: 'Last Updated',
    }
}


另外说下sidebar,有时可能会为某几个页面设置单独的侧边栏,比如:


网络异常,图片无法展示
|


可以单独设置一个sidebar,如:


// ptyhon-base/sidebar.js
module.exports = [
    {
        title: '开发环境搭建',
        sidebarDepth: 2,
        collapsable: true,
        children: ['1.1/', '1.2/', '1.3/']
    },
    {
        title: '概念常识',
        sidebarDepth: 2,
        collapsable: true,
        children: ['2.1/', '2.2/', '2.3/']
    },
    {
        title: '数据类型',
        sidebarDepth: 2,
        collapsable: true,
        children: ['3.1/', '3.2/', '3.3/', '3.4/']
    },
    {
        title: '条件判断与循环',
        sidebarDepth: 2,
        collapsable: true,
        children: ['1.1/', '1.2/']
    },
]


然后config/slidebar.js引用一波:

module.exports = {
    '/python-base/': require('../../python-base/sidebar'),
}


完美~


⑥ 生成静态文件


执行一波 vuepress build 即可,构建成功后,可以看到文件的存放目录:


网络异常,图片无法展示
|


此时如果你来到目录下打开index.html,会发现没有样式,控制台也一堆爆红


网络异常,图片无法展示
|


点开其中一个css:


网络异常,图片无法展示
|


明显的路径不对,可以修改config.js中的 base 属性,然后重新build一下, 不过笔者发现即使修改正确后,本地打开正常,然后会立马跳转404,目前无解, 有知道的朋友欢迎在评论区留言告知下,万分感激~


⑦ 添加.gitignore文件


然后是配置.gitignore文件,将一些不需要提交的文件忽略掉:


node_modules
dist
.idea


本地部署相关的就折腾那么多,接着是部署到云服务器上。


0x2、Vuepress 部署到云服务器


相关工具:


  • 云服务器系统:CentOS 8
  • SSH终端:Windows terminal
  • FTP工具:WinSCP


① SSH 连接云服务器


# 回车输入密码 → 回车
ssh root@xxx.xxx.xxx.xxx


② Nginx 安装


# 安装Nginx
sudo yum install nginx
# ↓ ↓ ↓ ↓ ↓ ↓ 其他常用命令 ↓ ↓ ↓ ↓ ↓ ↓ 
# 查看nginx运行状态
ps aux | grep nginx
# 重载nginx配置文件n
nginx -s reload 
# 立即停止nginx
nginx -s stop
# 优雅停止nginx
nginx -s quit
# 杀死所有nginx进程
killall nginx
# 启动nginx
systemctl start nginx.service
# 停止nginx服务
systemctl stop nginx.service
# 重启nginx服务
systemctl restart nginx.service
# ↓ ↓ ↓ ↓ ↓ ↓ 常用文件位置 ↓ ↓ ↓ ↓ ↓ ↓ 
# 查看nginx安装列表,可看到所有安装位置
rpm -ql nginx
/etc/nginx/nginx.conf       # nginx总配置文件
/etc/nginx/conf.d           # 所有的nginx自定义配置文件
/var/log/nginx/error.log    # 错误日志文件
/usr/share/nginx/html       # 服务器默认启动目录


另外,CentOS 8内置FirewallD防火墙方案,需要配置运行nginx的 80(HTTP) 和 443(HTTPS) 端口通过:


firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload


浏览器输入主机公网ip,出现如下页面,代表Nginx安装成功。


网络异常,图片无法展示
|


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
程序员 开发工具 开发者
以为是使用电脑的老手,没想到吃了没备份数据的亏。
以为是使用电脑的老手,没想到吃了没备份数据的亏。
|
SQL JavaScript Java
搭建情人节表白网站(超详细过程,包教包会)
网站的搭建其实在七夕的时候就已经弄好了,只是当时不会搭建,然后就放了好几个月,偶然发现情人节快到了,遂重新搭建了这个网站,不过说实话除了网站还真想不出有啥能够体现程序员的特长,你说各种代码,c,c++,java即时给你做出不错的GUI界面,人家还不一定会打开,网站最容易了,有手(机)就行,下面是它的效果展示视频,觉得好的记得三连哦
413 0
搭建情人节表白网站(超详细过程,包教包会)
|
域名解析 Java 应用服务中间件
吃灰的云主机不要忘,部署个人博客,隔壁开发都馋哭了(下)
笔者置办个人博客的技术选型: 简洁:界面简洁,排版合理,不需要花里花哨; 简单:上手简单,开箱即用,输出文章即可,无需过于关注实现细节; 快:加载快,性能高效,移动端适配(地铁上也可以康康);
204 0
|
域名解析 缓存 JavaScript
吃灰的云主机不要忘,部署个人博客,隔壁开发都馋哭了(上)
笔者置办个人博客的技术选型: 简洁:界面简洁,排版合理,不需要花里花哨; 简单:上手简单,开箱即用,输出文章即可,无需过于关注实现细节; 快:加载快,性能高效,移动端适配(地铁上也可以康康);
192 0
|
存储 JSON JavaScript
听说你情人节没人陪,这不我来给你介绍对象啦
听说你情人节没人陪,这不我来给你介绍对象啦
228 0
听说你情人节没人陪,这不我来给你介绍对象啦
|
程序员
18款表白网站源码,搭建网站必备,总有一款适合你!
18款表白网站源码,搭建网站必备,总有一款适合你!
18款表白网站源码,搭建网站必备,总有一款适合你!
|
小程序 前端开发 JavaScript
🎑提前祝大家中秋快乐,教你做一个【中秋花灯许愿】💖的网站
为了参加掘金社区的中秋征文活动专门策划了这么一个小站。但是物尽其用,我最近自研了一套Web网站基于扫小程序码登录的机制,正好借这个小站测试一下。
256 0
🎑提前祝大家中秋快乐,教你做一个【中秋花灯许愿】💖的网站
|
数据安全/隐私保护 索引 Python
这下女友总算满意了!
上次跟女友介绍了正则表达式的基本语法,以及在 Python 中如何使用。结果她还不满意,说传说中的正则表达式就这么简单?当然不是,今天就来跟大家一起介绍下正则表达式更多的使用技巧。
160 0