问题现象
GitHub-Pages上的css和图像不能正常显示:
分析
GitHub-Pages有两种形式,一种是以virhuiai.github.io这样的,一个账号只有一个的方式。另一种是以某个子仓库的,以virhuiai.github.io/pages这样的。
我使用的是子仓库式的,无法请求到css和图片,是因为对应的域名不一致。
解决css
最后的配置是:
baseurl: "pages" url: "http://virhuiai.github.io/"
看下记录变更:
我们改了baseurl和url:
其中这个idea社区版的git工具还是很喜欢的。
解决图片
在图片地址上添加个子仓库名:
如此这般在GitHub-Pages的显示终于正常了。但是本地编辑的时候目录又不对了。
解决本地Typora图片显示
Markdown的编辑器,我使用的是Typora。它有个指定图片根目录的:
下面用软链接解决本地编辑问题:
virhuiaivirhuiai@192 pages % cd /Users/virhuiaivirhuiai/Documents/virhuiai-github/pages
新建一个pages目录,
# 创建目录 mkdir pages
并将assets目录软链接到里面:
# 创建软链` ln -s /Users/virhuiaivirhuiai/Documents/virhuiai-github/pages/assets /Users/virhuiaivirhuiai/Documents/virhuiai-github/pages/pages/assets
这样就解决了Typora和GitHub-Pages上的图片显示了。
失败-容器内jekyll尝试一
如果是在容器中的jekyll,按上面配置,虽然Typora显示正常,但容器跑的jekyll会找不到文件。
因为它被链到的位置容器里是找不到的。
尝试两个方案,一个是运行容器时,用-v参数,将之映射:
# 运行容器 docker run --name my-jekyll \ -p 4000:4000 \ --volume="$PWD:/srv/jekyll" \ -v /Users/virhuiaivirhuiai/Documents/virhuiai-github/pages/assets:/Users/virhuiaivirhuiai/Documents/virhuiai-github/pages/pages/assets \ -it jekyll/jekyll:4.0 \ /bin/sh
这样子,容器里也会映射个/Users/virhuiaivirhuiai/Documents/virhuiai-github/pages/pages/assets目录。
尝试运行发现不行!
失败-容器内jekyll尝试二
另一种方案,使用相对路径做软链:
ln -s ../assets pages/assets
docker run --name my-jekyll \ -p 4000:4000 \ --volume="$PWD:/srv/jekyll" \ -it jekyll/jekyll:4.0 \ /bin/sh
尝试发现还是不行!那不管了,直接用吧。
结果
- GitHub-Pages上正常显示图片
- GitHub上不能显示图片
- 本地Typora正常显示图片
- 本地容器内不能跑起来
如果直接用以下这样的地址是可以的,不过不用那么麻烦了,本地和GitHub Pages上能正常就达到目的了,有试成功的欢迎留言分享。
如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。