jekyll中文文件名本地预览问题

Sep 30, 2016


前言

在使用jekyll的时候,如果本地的文件是中文,在预览的时候会无法预览,这是因为文件路径的编码问题导致找不到文件,这里我在谷歌找到了解决方法,原文连接:

http://blog.leiyinchun.com/2016-05/jekyll_local_chines_filename.html

原文转载

jekyll 目前支持 _post 目录下多级目录和中文路径,但本地预览时,如果markdown文件名是中文的,会导致无法无法访问。

解决办法:

修改安装目录\Ruby22-x64\lib\ruby\2.2.0\webrick\httpservlet下的filehandler.rb文件,建议先备份。

找到下列两处,添加一句( + 的一行为添加部分)

path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
+ path.force_encoding("UTF-8") # 加入编码
if trailing_pathsep?(req.path_info)
break if base == "/"
+ base.force_encoding("UTF-8") # 加入編碼
break unless File.directory?(File.expand_path(res.filename + base))

然后重启服务器即可jekyll clean && jekyll s