Skip to content

修复硬编码的站点绝对 URL:site.url 为 HTTP 且文章内写死域名(454 处 / 40 文件) #97

Description

@h1s97x

现象

站点存在硬编码的绝对 URL。

  1. _config.yml 第 8 行 url: "http://hibikilogy.github.io" —— 确为 HTTP,会影响 canonical、RSS、Disqus 等生成的绝对链接,应改为 HTTPS。
  2. 来源.github/workflows/path2url.yml:该 CI 在 _posts/**/*.md 变更时执行
    sed -i 's|\.\./images/|https://hibikilogy.github.io/images/|g',
    把作者写的相对路径 ../images/ 批量改成写死域名的绝对 URL,日积月累沉淀在文章里。

影响范围(master 实测)

  • _posts/**/*.md 中写死域名的自站链接共 454 处,涉及 40 个文件
    • front matter 字段(全部是 header-img)14 处
    • 正文 440 处:图片 .../images/ 425 处、站内其它链接(指向其他文章等)15 处
  • 模板中另有 1 处:_includes/nav.html 的搜索范围 site:hibikilogy.github.io
  • 文章内未发现 http://hibikilogy.github.io(0 处),但站点 url 自身是 HTTP

影响

  • 文章图片与站内链接写死域名,站点迁移或更换域名(CNAME)后会全部失效;
  • site.url 为 HTTP,canonical、feed.xml、Disqus 等输出的绝对地址是 HTTP,可能被浏览器 / 爬虫判为不安全内容。

修复方案

  1. _config.yml:url 改为 https://hibikilogy.github.io。
  2. 文章正文:https://hibikilogy.github.io → {{ site.url }}{{ site.baseurl }}。
  3. header-img 等 front matter 字段:改为站内根相对路径 /images/...。
    ⚠️ 实测 Jekyll 不会渲染 front matter 中的 Liquid:header-img: "{{ site.url }}..." 会原样输出为
    background-image: url('{{ site.url }}...'),导致图片失效。因此 front matter 只能用根相对路径。
  4. .github/workflows/path2url.yml:替换目标不再写死域名,并按位置区分
    (正文 → {{ site.url }}{{ site.baseurl }}/images/;front matter → /images/),避免问题复发。
  5. _includes/nav.html:搜索范围改由 site.url 推导。

验证

  • 生产模式 jekyll build 通过,输出符合预期:
    • 文章正文图片 → https://hibikilogy.github.io/images/...
    • header-img → /images/...
    • canonical / RSS → https://hibikilogy.github.io/...
    • 导航搜索 → site:hibikilogy.github.io
  • 源文件中不再出现写死域名的自站链接(cdn.jsdelivr.net、raw.githubusercontent.com 等第三方托管地址不在本次范围内)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions