menu

Jekyll无法本地预览中文文件名文件的解决办法

最近发现本地执行jekyll serve预览自己的博客时,点开文件名带中文的post会报404,看报错信息估计原因是路径解析时出现乱码。在网上找到了解决办法:按以下说明修改Ruby安装目录下lib\ruby\2.x.x\webrick\httpservlet下的filehandler.rb,建议修改前先作备份。

找到以下两行,在两行之间加一行path.force_encoding("UTF-8")

path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
if trailing_pathsep?(req.path_info)

再找到以下两行,在两行之间加一行base.force_encoding("UTF-8")

break if base == "/"
break unless File.directory?(File.expand_path(res.filename + base))

修改后保存文件,重新执行jekyll serve即可正常打开之前报404的post。

参考资料:https://blog.csdn.net/yinaoxiong/article/details/54025482