为什么在我将更改从 Jekyll 推送到 Github 页面后只显示 HTML?

Why is just the HTML showing after I push my changes from Jekyll to Github Pages?

我是第一次在 Jekyll 上创建博客,我正试图将我目前拥有的内容部署到 github 页面。当我为网站提供服务并在本地查看时,它看起来不错——所以我认为我所要做的就是将所有文件推送到 gh-pages 分支。现在我已经完成了这个,所有显示的都是 HTML.

为了解决问题,我只下载了模板文件并将它们推送到 Github 页面以查看问题是否与我编辑 CSS 的方式有关,但是当我这样做时我得到了相同的结果。

我看到一篇专门介绍如何使用 github 页面来存储 jekyll 站点的文章,它说要删除链接样式表中 css 文件夹前的斜线HTML 如果您的页面样式不正确。阅读后我认为斜杠肯定是问题所在,但在删除斜杠之后......我得到了相同的结果。

我已经尝试了几个小时,我觉得它可能很简单(比如斜线)。

这是回购协议: https://github.com/pacalabre/blog-site/tree/gh-pages

这是输出: http://pacalabre.github.io/blog-site/

提前感谢您的回答!

您需要add/edit: baseurl: /blog-site 到配置文件。请注意没有尾部斜杠。 'blog-site' 是你的项目名称,项目名称成为一个为你的站点服务的子目录。如果没有 baseurl 设置,您的亲戚 url 会尝试从 http://pacalabre.github.io/ when they are really at http://pacalabre.github.io/blog-site/ 获取内容。

GH 将您的站点作为该域的子文件夹提供服务,您的引用没有考虑到这一点。

添加基础url 设置后,您需要在图像、css 和 js 等资产前面添加 {{site.baseurl}}。

此外,一旦你做了基础url设置,当你在本地服务时它会不太正确,你需要将/blog-site添加到本地主机的末尾url 使其正常工作。

您还应该尝试使用 Chrome 中的开发工具检查器来帮助您解决问题,它现在会清楚地告诉您它无法加载所有 js 文件或图像,并且会显示它在哪里试图从中加载它们。

你看,你的site/repo有点问题。

  1. 我没有在站点根目录(gh-pages 分支)找到您的 _config.yml。它应该在那里。

  2. 那里有一个二进制文件(如果我没记错的话,可能是 Mac 的文件)。它不应该在那里。

  3. 那里有 Jekyll 的文件夹(_posts_drafts_layouts 等)和 _site 文件夹。你需要选择。或者你上传 _site 内容(不是文件夹本身)或者你上传 Jekyll 项目。通常你只上传 Jekyll 文件夹和 GH 为你构建站点,除非你使用一些 GitHub 不允许的插件。在这种情况下,您只上传 _site 内容,即编译站点(html、CSS、仅 js)。

  4. 在上一个回答中,系统指示您将 baseurl 添加到您的站点配置中。这是最好的方法,但是如果你的模板只使用 url 而没有提到 baseurl,最好的方法是将项目名称添加到 url 的末尾,而不是搜索每 link 通过液体呼叫 {{ site.baseurl }}。所以,与其给自己带来这些麻烦,不如在 _config.yml:

    中这样做
    url: http://username.github.io/projectname
    
  5. 如果您确实要设置 baseurl,您可以通过 localhost:4000 在本地查看您的站点,方法是在服务 Jekyll 时添加此标志:--baseurl ""。所以,jekyll serve --watch --baseurl ""。这意味着像 "Jekyll, ignore the baseurl set in the config"。明白了吗?

  6. 使用捆绑器服务 Jekyll 是正确的方法,特别是在部署到 GH Pages 时。不过这是另外一回事了,有兴趣的可以稍后补充。

  7. 建议。进一步了解 Jekyll 的工作原理。还要寻找 .gitignore 这样你就不会向 GH 上传任何不必要的东西(比如那个二进制文件)。

之后,如果您的网站无法正确构建或显示,请告诉我,如果需要,我会帮助您。

希望对您有所帮助!