Hexo搭建博客踩坑:只能显示主页面

部署后,只有主页面是正常的,其他页面的样式错乱、图片丢失。

其实还是路径的问题啦。

问题描述

去年捣鼓了Hexo,本着好玩的心态想自己搭建一个博客。最近大三了重拾出来,想要记录一些自己的学习过程。但是却踩坑连连……

我使用的主题叫做fluid,很优雅。配置后,主页面很快可以正常显示,但是点击文章里面的内容却是没有样式的样子。此外归档页/分类页等等也都是没有样式的。

问题原因

通过hexo g 命令生成页面后,就生成了./.deploy_git文件夹,我天真的以为,在deploy或者public文件夹里看到的html界面,就会是最终的效果。然而真的是这样嘛?

如果查看github的仓库,就会发现,提交是只提交了public文件夹下的内容的。所以当public下的内容上传后,这个public目录下的内容,就是服务器的根目录。

那么,我直接打开这些生成的html,比如这个“About me”的页面,它的路径是/public/about/index.html,我发现这里面所有路径的地方都是这样写的:

 style="background: url('./img/bg2.jpg')

这样写的:

href="./lib/hint/hint.min.css" 

等等。

这个 ./ 就是当前文件所在的目录。

但是呢,当前文件的路径是./public/about/index.html

而代码里./ 定位到当前目录,即public/about这里!但是img文件夹、lib文件夹,却是在根目录public/下的,在about里是找不到它们的~于是导致了这个页面的图片丢失,样式无法显示的问题。

问题解决

配置路径的地方,应当是在根目录的_config.yml文件里,#URL的地方。

其中第一个地址作用是打开网页后第一个显示的入口。

第二个地址的作用是静态网页的部署目录。我之前设置的是 ./

这就导致了如前文所说,生成的html文件里,路径写的也是:

./img/bg2.jpg

为了让他能找到public/img,只要在配置文件的第二个地址里写一个/就可以了。

这样生成的html里路径就变成了:

/img/bg2.jpg

于是,在寻找样式的时候,找到的是public/img,按道理应该可以了。

尝试一下。

终于成功了!


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!