【问题标题】:Why don't my default Jekyll links work on my live site? Only locally?为什么我的默认 Jekyll 链接在我的实时站点上不起作用?只在本地?
【发布时间】:2021-08-06 13:50:43
【问题描述】:

我在很多项目中都使用过 Jekyll,从来没有遇到过这个问题。

基本上,我的网站在本地运行良好,但如果我构建并上传到 mydomain.com 突然没有一个基本页面链接(都转到“mydomain.com/page”)不起作用。如果我手动将它们设置为“mydomain.com/page.html”,它们就可以工作,但它们通常只使用“mydomain.com/page”

我的配置和设置非常简单:

baseurl: ""
url: "mydomain.com"

header_pages:
  - index.md
  - dates.md

我正在使用 shell 主题:https://tareqdandachi.github.io/jekyll-shell-theme/

两页:index.md 和 dates.md,均设置为:

---
layout: home
permalink: /
permalink_name: /home
title: Home
---

和

---
layout: page
permalink: /dates
permalink_name: /dates
title: Dates
---

但是,如果我单击导航栏中的日期链接,我只会收到默认的“未找到”错误(不是 Jekyll 中配置的 404 错误)。

所以好像'/page'类型的链接都没有工作?但如果它是“page.html”,它们就可以工作

发生了什么事?有什么明显的吗?可能是我的服务器配置错误?

【问题讨论】:

    标签: markdown jekyll


    【解决方案1】:

    jekyll serve 命令以相当宽松的规则启动 Web 服务器,以支持各种潜在的生产设置。这些规则可能与您的生产 Web 服务器不匹配。解决方案是找到对两者都适用的方案。

    例如,jekyll serve 为/about.html 提供服务(根据记忆):

    • /about.html
    • /about
    • /about/
    • /about/index.html

    我更喜欢在永久链接上使用斜杠,因为几乎所有地方都默认支持它。这意味着 Jekyll 正在将文件输出到 /about/index.html,但您可以使用 /about/ 访问它。

    您绝对可以让无扩展名的 URL 正常工作(现在这很常见),通常您必须设置 Web 服务器,以便它知道在请求 /about 时服务 /about.html。您可能还想将/about/ 重定向回/about,反之亦然——此时这有点主观。

    【讨论】:

    • 谢谢!在我的永久链接中添加一个斜杠(即“/dates/”)效果很好。
    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 2013-05-25
    相关资源
    最近更新 更多