layout: post

tags: [Jekyll]

comments: true

执行Jekyll本地浏览器预览指令

 bundle exec jekyll serve

进入浏览器输入127.0.0.1:4000,可以正常浏览首页,但是点击文章链接,则会显示404页面,查看控制台显示错误的log,如下:

PS D:\work\github\test\_site> bundle exec jekyll serve
Configuration file: none
Source: D:/work/github/test/_site
Destination: D:/work/github/test/_site/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 1.972 seconds.
Auto-regeneration: enabled for 'D:/work/github/test/_site'
Server address: http://127.0.0.1:4000
Server running... press ctrl-c to stop.
[2019-12-14 09:20:28] ERROR `/2019-11-06-STM32-TIM1高级定时器配置快速入门/' not found.
[2019-12-14 09:20:37] ERROR `/2019-11-05-STM32-时钟树配置快速入门/' not found.
[2019-12-14 09:20:42] ERROR `/2019-11-04-STM32-J-scope的使用/' not found.
[2019-12-14 09:20:48] ERROR `/2019-10-28-Matlab-simulink-步进电机驱动仿真/' not found.
[2019-12-14 09:21:07] ERROR `/2019-10-25-STM32-正交解码功能采集编码器信号/' not found.
[2019-12-14 09:21:13] ERROR `/2019-10-24-STM32-互补PWM波形配置/' not found.
[2019-12-14 09:57:47] ERROR `/favicon.ico' not found.
[2019-12-14 10:07:20] ERROR `/2019-09-14-PMSM-一-电机的数学模型/' not found.
[2019-12-14 10:07:25] ERROR `/2019-09-20-STM32-标准库启动文件分析/' not found.
[2019-12-14 10:07:29] ERROR `/2019-10-25-STM32-正交解码功能采集编码器信号/' not found.

以上无法找到的文件,在_site文件夹下都存在,简单分析应该是编码格式的问题,导致server无法正确找到对应的文章;

解决方案:

找到文件C:\Ruby26-x64\lib\ruby\2.6.0\webrick\httpservlet\filehandler.rb,具体安装目录根据实际情况确定

文件修改如下所示;

diff --git a/filehandler_back.rb b/filehandler.rb
index 601882e..10f51d6 100644
--- a/filehandler_back.rb
+++ b/filehandler.rb
@@ -283,6 +283,7 @@ module WEBrick
# dirty hack for filesystem encoding; in nature, File.expand_path
# should not be used for path normalization. [Bug #3345]
path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
+ path.force_encoding("UTF-8")
if trailing_pathsep?(req.path_info)
# File.expand_path removes the trailing path separator.
# Adding a character is a workaround to save it.
@@ -330,6 +331,7 @@ module WEBrick
path_info.unshift("") # dummy for checking @root dir
while base = path_info.first
break if base == "/"
+ base.force_encoding("UTF-8")
break unless File.directory?(File.expand_path(res.filename + base))
shift_path_info(req, res, path_info)
call_callback(:DirectoryCallback, req, res)

修改完,重新执行bundle exec jekyll serve,进入浏览器发现已经可以解决这个问题。

最新文章

  1. 自定义控件设置属性并实时展现并预览在xib中
  2. div显示滚动条
  3. Cheatsheet: 2015 07.01 ~ 07.31
  4. CORBA GIOP消息格式学习
  5. Crontab中shell每分钟执行一次HDFS文件上传不执行的解决方案
  6. Android学习笔记之AndroidManifest.xml文件解析
  7. Oracle数据文件在open状态被删除的恢复记录
  8. 英语学习APP—百词斩
  9. SSD论文优秀句子
  10. Oracle数据库的下载和安装
  11. js图片实现延迟加载
  12. oracle插入数据报错ORA-26026
  13. UESTC_冰雪奇缘 CDOJ 843
  14. NASPhoto Station不只是储存的强大照片管理功能
  15. (十二)this关键字
  16. 687. Repeats spoj (后缀数组 重复次数最多的连续重复子串)
  17. ●BZOJ 4698 Sdoi2008 Sandy的卡片
  18. 基于CAS实现单点登录(SSO):工作原理
  19. WPF DesiredSize & RenderSize
  20. listener 监听 tomcat 容器的初始化和销毁

热门文章

  1. Python - 利用词云wordcloud,jieba和中国地图制作四大名著的热词图
  2. 今天我们谈一下HTML标签中的<map>标签的用法和使用场景
  3. sudo -s 命令 [oh-my-zsh] 提示检测到不安全目录
  4. 从零开始的计算机网络基础(图文并茂,1.8w字,面试复习必备)
  5. PHP 语法字符串函数 strcmp、strlen 使用及实现
  6. 使用NLP从文章中自动提取关键字
  7. C#多线程(14):任务基础②
  8. TP5 JSON对象数组转换为普通数组
  9. C++ Windows - How to get process path from its PID
  10. [Qt] 文本文件读写, 摘自官方文档