问题 1 : hexo-server 开启 compress 压缩后 hexo-browsersync 插件热更新完全无效,没办法自动刷新

此问题表现在 hexo 任何版本

问题原因:

hexo-server 依赖 compression^1.7.4 会自动安装 compression@1.8.0,压缩后 Content-Encoding 不是 gzip 而是 br, hexo-browsersync 无法解析 br 压缩内容,从而导致自动刷新失效。

解决办法:

方法1. 关闭 compress 压缩,但是关闭后会出现长内容被截断,要处理长内容截断,只能把 hexo-browsersync 插件移除或者开启 compress 压缩。

方法2. 手动将 compression@1.8.0 依赖的 negotiator@0.6.4 内容 node_modules/compression/node_modules/negotiator/index.js 替换为 0.6.3 版本, 0.6.3 版本内容可以在 https://npmmirror.com/package/negotiator/files/index.js?version=0.6.3 查看。

方法3. package-lock.json 文件中将 hexo-server 依赖的 "compression": "^1.7.4", 改为 "compression": "1.7.4", 让其强制安装 compression@1.7.4 版本,并且删除已保存的 compression 1.8.0 json 段落,然后删除 node_modules 重新运行 npm install 安装依赖即可。

问题 2 : hexo-server 偶尔内容空白和内容截断,导致 hexo-browsersync 插件热更新失败

此问题表现在 hexo 版本: v4.2.0

问题原因:

hexo-server 返回的 Content-Length 是错的, 比实际内容短,导致浏览器截断内容。

解决办法:

hexo-server 的 配置文档 有一项 compress 配置,一般服务器对内容压缩都会使用流式压缩,即不会使用 Content-Length 预设页面的长度。经测试,可解决该问题,解决方法:根目录配置文件 _config.yml 添加如下代码:

# hexo-server配置
server:
# 此配置解决偶尔实时刷新无效和长文章被截断问题
compress: true

注意:hexo 不同版本可能配置字段名不一样!

问题 3 : hexo-server 保存文章时候内容空白问题

此问题表现在 hexo 版本: v4.2.0

问题原因:

刷新过快,导致文件编译未完成,没有内容响应。

解决办法:

node_modules/hexo/lib/box/index.js 246 行:

watcher.on('change', path => {
this._processFile(File.TYPE_UPDATE, getPath(path));
});

改为

let timer = null;
watcher.on('change', path => {
clearTimeout(timer);
timer = setTimeout(() => {
this._processFile(File.TYPE_UPDATE, getPath(path));
}, 60);
});

如果设置 60 毫秒后还有问题,可以将 60 再改大一点。

此处加上的 setTimeout 还有一个好处,可以节流,短时间内多次保存当做一次处理。

hexo 本地启动项目 hexo-browsersync 不工作原因总结的更多相关文章

  1. 本地启动项目后cookie跨域获取不到的处理方式

    问题现象   最近在做Vue项目,很多时候调试代码需要本地访问localhost来进行,然而请求接口是通过代理实现的,那么就会存在一种情况是:代理域名下种植的cookie,在localhost域名下访 ...

  2. VS2013启动项目调试的时候会启动本地IIS

    VS2013启动项目调试的时候会启动本地IIS ,而在这种状态下去调试程序,会有很多功能用不了,而且还会有错误:如下图: 解决方法,将托管管道模式更改一下就行了:

  3. 怎样将本地web项目部署到腾讯云服务器上?

    怎样将本地web项目部署到腾讯云服务器上? 1.本地计算机的工作: (1).用eclipse新建一个web项目,然后在webcontent下新建一个index.html,然后在本地部署到Tomcat服 ...

  4. Hexo | 超详细的hexo+githhub page搭建过程

    首先安装node.js 安装git 去Git官网根据你的电脑参数,下载对应版本. 下载完成,通过在命令行输入 git version 查看是否安装成功,有输出版本号说明安装成功. 鼠标邮件菜单里就多了 ...

  5. 利用Maven管理工程项目本地启动报错及解决方案

    目前利用Maven工具来构建自己的项目已比较常见.今天主要不是介绍Maven工具,而是当你本地启动这样的服务时,如果遇到报错,该如何解决?下面只是参考的解决方案,具体的解法还是得看log的信息. 1. ...

  6. IntelliJ IDEA通过Tomcat启动项目过程分析

    Tomcat部署项目的多种方式 Tomcat安装目录:${TOMCAT_HOME} 1.常规的webapps下直接部署到${TOMCAT_HOME}/webapps下 2.利用控制台进行部署 3.外部 ...

  7. 使用gradle命令代替CUBA Studio,启动项目

    在cuba platform开发中,一开始都会使用CUBA Studio,这是一个脚手架,可以很方便的创建数据表.视图.Bean等.但是有时也会有奇怪的问题,比如不能读取本地maven 仓库,只读取远 ...

  8. Eclipse启动项目正常,放到tomcat下单独启动就报错的 一例

    一个老的ssh的项目,进行二次开发(增加一些新功能)后, 首先用Eclipse中集成的Tomcat启动没有任何问题,但是把启动后的webapps下得目录放到 windows的普通tomcat下单独启动 ...

  9. TortoiseGit学习系列之TortoiseGit基本操作将提交到本地的项目推送到在线仓库(图文详解)

    前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseG ...

  10. eclipse启动项目

    今天做的任务不多,没有自己写代码,上午看了些文章,下午我司后台给配了配项目环境,全装C盘了..以后有我好受的.. 看着后台操作,修改了N多配置,tomcat.redis.zkServer..Nginx ...

随机推荐

  1. Ubuntu 下安装oh-my-zsh

    Ubuntu系统默认状况下的终端样式如下: Ubuntu default terminal's style 有个知名的神奇:Oh-My-Zsh 可以让终端及美观又实用: Oh-My-Zsh agnos ...

  2. SprinfBoot报警告WARNING: An illegal reflective access operation has occurred

    警告如图所示,该警告是因为jdk版本太高(我用的是10.0,据说9.0的也会这样),具体的原理还没有研究,它不影响项目的正常运行,但是看着很糟心有木有~~~~ 解决方案是把项目jdk降低到1.8及以下 ...

  3. Qt/C++编写全能播放组件(支持ffmpeg2/3/4/5/6/Qt4/5/6)

    一.前言 从代码层面以及自由度来说,用ffmpeg来写全能播放组件是最佳方案(跨平台最好最多.编解码能力最强),尽管已经有优秀的vlc/mpv等方案可以直接用,但是vlc/mpv对标主要是播放器应用层 ...

  4. C#中串口类SerialPort类的详细用法

    原文链:serialport控件的详细用法

  5. DVWA靶场File Inclusion (文件包含) 漏洞所有级别通关教程及源码解析

    文件包含 文件包含漏洞(File Inclusion Vulnerability)是一种常见的网络安全漏洞,主要出现在应用程序中不安全地处理文件路径时.攻击者可以利用此漏洞执行恶意文件,或者访问不该被 ...

  6. Solution Set -「Public NOIP Round #3 (Div. 1)」

    \(\mathscr{A}\sim\) 移除石子   Tags:「A.构造」「C.细节」   "显然" 直接按 \((x,y)\) 二元组排序后两两组成正方形! 喜提 \(90\t ...

  7. 利用Linq Skip() Take()分页

    private void TestPostData() { string all = ""; List<int> listTimeCard = new List< ...

  8. java解析CSV文件三种方法(openCSV)

    一.简介1.pom.xml<!-- csv文件解析依赖 --><dependency> <groupId>com.opencsv</groupId> & ...

  9. 【JMeter】---入门

    JMeter入门 一.概述 JMeter是Apache下一款在国外非常流行和受欢迎的开源性能测试工具,JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能. ...

  10. zabbix监控网络设备流量

    项目环境 一台liunx服务器,这里使用的为ubuntu22.04(192.168.86.140) 一台华为交换机,本次监控的就是该交换机的端口流量(192.168.86.20) 一台pc主机,使用该 ...