使用jekyll本地调试可以访问静态资源,但是上传至GitHub无法访问的问题

拓拔松
2023-12-01

jekyll模板地址

 

1.  可能是_site文件被忽略,检查.gitignore文件

.gitignore文件有可能将_site文件添加为忽略文件,以至于git add . 等后续操作将该文件忽略,从而无法上传至远程仓库的问题。

如下,是我下载jekyll模板后,存在的内容,可以看到_site文件以及.sass-cache文件都被忽略了。

_site
.DS_Store
*.swp
.sass-cache
*~

 

解决:检查远程仓库是否有_site文件,将.gitignore文件中的内容去掉,重新提交至远程仓库即可。

 

 

2. 可能是配置文件的baseurl字段设置的问题

_config.yml配置文件如下:

# Site
name: "WangJwi"
title: "WangJwi"
description: "积跬步以至千里~"
logo: 'assets/images/logo.png'
favicon: 'assets/images/logo.png'
baseurl: /WangJwi
google_analytics: 'UA-46278016-1'
disqus: 'demowebsite'
mailchimp-list: 'https://wowthemes.us11.list-manage.com/subscribe/post?u=8aeb20a530e124561927d3bd8&id=8c3d2d214b'
include: ["_pages"]
permalink: /:title/

 

如果baseurl字段设置了值,jekyll本地生成的所以HTML文件中,其对静态资源的访问路径都会加上改值以作地址映射

<img src="/WangJwi/assets/images/logo.png" alt="WangJwi">

 

所以看到这里问题的原因就很清楚,上传至远程仓库后,其由于github的根目录没有关于/WangJwi这个地址映射,所有使得有该映射地址的静态文件都无法访问

 

解决:我目前还没找到可以为GitHub添加映射的方法,因此只能先将baseurl值置空

 

注意,修改完上述内容后,需要在本地重新启动一下jekyll的本地调试服务,它可以帮你替换掉所有有关baseurl的内容

 

git源码地址可供参考:VsLegend

 

参考:Jekyll github page博客本地调试

 类似资料: