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 协议 ,转载请注明出处!