Jekyll网站不会加载

时间:2018-04-16 22:35:09

标签: jekyll github-pages

我已经尝试了一段时间让Jekyll网站在Github Pages上运行,但它似乎没有用。我一直在收到错误

  

您的网站在构建时遇到问题:符号链接   /vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi-x86_64-linux-gnu/include/ffitarget.h   定位您网站的存储库中不存在的文件。对于   更多信息,请参阅   https://help.github.com/articles/page-build-failed-symlink-does-not-exist-within-your-site-s-repository/

我已经尝试了9个不同的Jekyll主题,但它们似乎都没有用,所以我显然做错了。以下是我正在采取的步骤

1)创建一个新的repo并将Jekyll Theme中的文件放在那里,或者从另一个repo中分叉(例如https://github.com/iwiedenm/jekyll-theme-massively-src

2)Git把它拉进我的电脑,确保我在bundle install --path vendor/bundle分支上

3)运行bundle exec jekyll serve

4)确保它是使用git add *

构建的

5)一旦看起来不错,请将其上传到Github git commit -m 'Test' git push {{1}}

然后我在浏览器中找到了回购邮件,我看到上面的错误,因为那个错过了" ffitarget.h"我无法看到该网站。文件。当我在该目录中寻找它时,我能够找到它,但Github似乎无法找到它。

Nick Shu

PS:请随意将其标记为副本。我见过其他页面,例如this,我试过了,但它没有用。

2 个答案:

答案 0 :(得分:2)

确保vendor/bundle/目录已被排除 ..

默认情况下,Jekyll 排除该目录,因此,它不会关心vendor目录中的内容..

当您分叉/克隆仓库时,exclude:列表可能已被自定义(因此覆盖了默认设置)。您可以通过将Jekyll添加到自定义排除列表中来确保忽略vendor/bundle/

# Exclude list
exclude:
- README.md
- Gemfile
- Gemfile.lock
- node_modules
- gulpfile.js
- package.json
- _site
- src
- vendor
- CNAME
- LICENSE
- Rakefile
- old
- vendor/bundle/

要在本地模拟如何在GitHub页面上构建网站,您可以使用--safe开关构建

bundle exec jekyll serve --safe

答案 1 :(得分:2)

Github页面将使用 vendor 中的本地gem。如果您提交它们,每次github页面尝试解析符号链接时都会出错。

从新的存储库

在您执行vendor/**之前,在 .gitignore 文件中添加git add . *

git add . *中的点强制git处理dotfiles(.gitignore,...)。

从包含供应商文件夹中的宝石的现有存储库

  • .gitignore 文件中添加vendor/**

  • 从版本控制中移除 供应商/ 文件,git rm --cached -r vendor/

您现在可以暂存,提交和推送

git add . *
git commit -m 'remove vendor from versioning'
git push origin master`

备注

  • 您可以发布 分支内容,因为 gh-pages 分支不再是强制性的。 See documentation
  • 除非你有像debuging这样的特殊需求,否则没有必要为你的每个项目下载宝石。你可以做一个捆绑安装。