关于博客更新的问题我再次写上一片文章,完美图解,希望不会的小伙伴能够认真看,自己解决问题!

生成静态资源报错很多但是又不影响访问的问题!

搭上我一直以来的经验,

  1. 可能是你编辑文章使用的标签和博客需要生成的标签发生了冲突。

  2. 违背了主题语法,这个问题大多数出现在

    比如titile 后面没有加上空格直接加文字,肯定会报错。再看看里面有没有什么特殊的符号。

    可能会让博客生成静态资源的时候出现问题。

如何把博客部署到github上面?

准备内容:

  • 博客项目,可以通过hexo s 正常访问的。
  • github 账号,且知道账号密码。

上传到github并搭建自己的个人网站:

  1. 进入pc登录自己的github账号,创建一个仓库,仓库名称是<必须是用户名>.github.io,用户名并且以github.io结尾的仓库。

  2. 然后打开仓库的代码区。

  3. 接下来进行git的基本操作将博客的静态资源push到仓库。

    接下来提供两种方法,并没有太大区别!

方法一:

  1. 通过 clone 的方法来push代码。

  2. 在项目目录下面克隆仓库。

    仓库地址在这里 ↓

    1
    git clone <仓库地址>
  3. 之后会升生成一个和仓库名称一样的文件夹。

  4. 修改静态资源生成的位置。

    public_dir后面的内容修改为你仓库的文件夹名称。

    因为他的作用是指定静态资源生成的位置。

  5. 在项目目录下运行 hexo g 生成静态资源。

  6. 进入仓库文件夹内。

  7. git push三部曲

    1
    2
    3
    git add .        //将当前文件夹内所有内容添加到暂存区
    git commit -m "<随便敲一些备注>"
    git push -u origin master //将暂存区的代码提交到git。
  8. 这样就完成了。

    方法二:

  9. 这次通过 git init 的方式来部署博客。

  10. 创建完成仓库之后。

  11. 进入项目目录。

  12. 使用 hexo g 命令生成静态资源。

    1
    hexo g
  13. 之后通过 ll 命令,查看目录结构。

    这个文件夹就是博客的静态资源文件。

    只要是前端带页面的东西部署上去的都是静态资源。

  14. 进入静态资源文件夹。

  15. 1
    2
    3
    4
    git init
    git add . //将代码添加到暂存区
    git commit -m "<备注>"
    git push -u origin master
  16. 完成!

  1. 打开打开仓库的 setting 设置。

    找到下面的内容。

    看看是否存在。如果没有的话检查自己的博客地址和用户名是否一致。

    如果不一样,删掉仓库从新执行第一步。

  2. 点进去如果是404就刷新一下,清除一下信息。使用手机和电脑一起访问这个网址,看看有没有效果。

将博客部署在服务器上(阿里云/百度云)

准备内容:

  • 服务器一台,并有git操作。

    1
    yum install git             //这个命令可以直接安装git
  • 服务器的 Ningx

  • 博客静态资源仓库。

操作方法:

  1. 首先确定你有nginx。

  2. nginx -v 显示版本号

  3. 部署的博客需要开放指定端口,或者直接关闭防护墙。

    打开指定端口:

    1
    firewall-cmd --query-port=<要查看的端口>/tcp

    yes 为开启,no为没有开启

    1
    2
    3
    firewall-cmd --add-port=<要开启的端口>/tcp --permanent         //打开指定端口
    firewall-cmd --reload //重载配置文件
    firewall-cmd --query-port=<要查看的端口>/tcp //查看端口是否开启

    再附上关闭端口的命令

    1
    firewall-cmd --permanent --remove-port=<要关闭的端口>/tcp        //关闭指定端口

关闭防火墙:

这种方法就比较暴力了,关闭防火墙。不建议。

查看防火墙状态

1
systemctl status firewalld

开启防火墙

1
systemctl start firewalld

关闭防火墙

1
systemctl stop firewalld

开启防火墙

1
service firewalld start

若遇到无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service

部署到Nginx:

  1. 在服务器上进入下面路径。

  2. 新建一个 以 .conf 结尾的配置文件。

    1
    vim <配置文件的名称>.conf
  3. 加入以下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    server {
    listen 4000;
    server_name localhost;
    location / {
    root /home/apibook/_book;
    index index.html;
    try_files $uri $uri/ =404;
    }
    }

    修改一下两处

    • listen 后面是指定的端口号(必须为开启的端口)
    • root 后面指向的是你静态资源的路径
  4. 最后一步重载nginx配置文件。

    1
    systemctl restart mongod.service
  5. 通过服务器的IP和指定端口访问。

更新、上传博客文章。

准备内容:

  • github或服务器上已经部署了的个人网站。
  • git

上传新的文章。

  1. 1
    hexo n <文章名称>

    这个内生成新的 .md 格式的文章。

  2. 更新完成之后再博客项目下进行。

    1
    hexo g         //生成静态资源
  3. 进入静态资源目录。

  4. 进行push代码三部曲。

    1
    2
    3
    git add . 
    git commit -m "备注"
    git push -u origin master
  5. 完成上传!

如果是在服务器上:

需要进入服务器的静态资源目录内 pull ,最新代码。

更新文章进阶版

hexo给我们提供了push代码的方法,位置在博客目录下 _config.myl 文件的 80行左右。

正确写法:

1
2
3
4
deploy:
type: git
repository: git@github.com:liuxianan/liuxianan.github.io.git
branch: master

错误写法:

1
2
3
4
deploy:
type: github
repository: https://github.com/liuxianan/liuxianan.github.io.git
branch: master

type: 是类型一般用 git

repository: 是项目仓库的地址。

branch: 是指定那个分支 master是主分支。

后面一种写法是hexo2.x的写法,现在已经不行了,无论是哪种写法,此时直接执行hexo d的话一般会报如下错误:

1
Deployer not found: github 或者 Deployer not found: git

原因是还需要安装一个插件:

1
npm install hexo-deployer-git --save

配置完成这些之后。

创建更新文章完成之后。

1
hexo g -d

直接生成静态资源,上传到仓库一起执行了

过程中可能会提示你输入这个仓库的用户名和密码。输入正确就可以了!

常用的hexo命令

1
2
3
4
5
6
7
hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署到GitHub
hexo help # 查看帮助
hexo version #查看Hexo的版本

缩写:

1
2
3
4
hexo n == hexo new             //创建一个新文章   
hexo g == hexo generate //生成静态资源
hexo s == hexo server //开启访问预览
hexo d == hexo deploy //部署到git 需要配置

组合命令:

1
2
hexo s -g #生成并本地预览
hexo d -g #生成并上传