关于hexo写好文章后push到nginx细节

  1. 先cd到网站根目录

  2. 启动hexo new “文章名”

  3. 编辑文章(文章地址在source目录下)

  4. 保存

  5. 回到根目录,然后进行静态生成,如何生成:

    hexo clean
    hexo generate
    这将清除缓存并生成最新的静态文件到public目录下。

  6. 将生成的静态文件复制到nginx的网站根目录下,如何复制:
    cp -r public/* /path/to/nginx/website/root/
    (在根目录下进行)

    还有一种更新的操作,这种操作是针对于已经push过的网页,且只想更新一下没有的内容:

    rsync -avz –update /path/to/hexo/public/ /path/to/nginx/website/root/

    ps: rsync -avz –update /var/www/hezi/public/ /var/www/html/

    -a 表示归档模式,保持原有文件属性,如权限、时间戳等。
    -v 增加详细输出,可以看到哪些文件正在被同步。
    -z 启用压缩,对于网络传输有帮助。
    –delete 删除目标目录中源目录没有的文件。
    –update 只更新那些已经改变了的文件。

  7. 重启nginx
    nginx -s reload
    或者
    sudo systemctl restart nginx

  8. 访问网站
    congratulations!

  9. 在制作album的时候,
    网站主页是放在public文件夹里,所以public属于根节点,album是子节点,img是album的子节点。超链接地址是:/album/img/imgname.jpg , 这样才不会出现404

  10. 如果你想在使用Hexo生成新的静态文件时仅更新文章部分,而不改变public目录中其他已有的设置和静态文件,这通常意味着你需要一种增量构建机制,但这与Hexo的默认行为不符。Hexo的设计初衷是每次构建时生成整个站点,以确保所有内容都是最新的并且一致的。
    我发现了一个bug,在public下的index.html 从后面都是会变的,的前面固定,所以可以使用 自动化shell
    为了自动化地替换 index.html 文件的前75行,你可以编写一个 shell 脚本或者直接使用 sed 命令。由于你想要替换的是文件的头部,使用 sed 可能是最直接的方法。

将 sed 命令封装到一个 shell 脚本中,并设置为定时任务,可以通过以下步骤实现:

第一步:创建 Shell 脚本
首先,创建一个新的 shell 脚本文件,例如命名为 update_index_header.sh 在终端中,可以使用文本编辑器如 nano 或 vim 创建文件:

bash
nano update_index_header.sh

第二步:赋予脚本执行权限
为了让脚本可执行,需要更改它的权限:

bash
chmod +x update_index_header.sh
第三步:设置 Cron Job
Cron 是 Linux 中用于调度周期性任务的守护进程。你可以通过编辑 crontab 文件来添加新的定时任务。

运行以下命令打开当前用户的 crontab 编辑器:

bash
crontab -e
在编辑器中,添加一行来指定何时运行你的脚本。例如,如果你想每天凌晨1点运行这个脚本,可以添加以下行:

cron
0 1 * * * /path/to/update_index_header.sh
这里的 0 1 * * * 表示在每天的凌晨1点(01:00)执行脚本。

保存并退出编辑器。Cron 将自动加载新的 crontab 文件,并开始按照你设定的时间表运行你的脚本。

这样,你就成功地设置了一个自动化任务,它会在你指定的时间自动更新 index.html 文件的头部。记得根据你的实际文件路径调整脚本中的 file_path 变量。
0 1 * * * /path/to/update_index_header.sh
0 6 * * * rsync -avz –update /var/www/hezi/public/ /var/www/html/
3 6 * * * systemctl restart nginx (6:03)