You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jekyll菜单链接出现404页面未找到错误的问题求助

解决Jekyll链接404:干净URL vs 带.html文件名的问题

嘿,我刚帮好几个Jekyll新手搞定过一模一样的问题!你的核心矛盾很清晰:Jekyll默认生成的是「干净URL」(比如/people),但你上传到name.com主机后,实际存在的文件是people.html,服务器没法自动把/people映射到people.html,所以才会跳404。你提到的两种解决方向完全正确,我给你拆解具体操作步骤:

方向1:让Jekyll生成带.html的链接

直接从源头修改Jekyll的输出,让它生成的链接和实际文件名一致:

  • 打开你的Jekyll项目根目录下的_config.yml文件
  • 添加或修改permalink配置项:
    permalink: /:title.html
    
    这个规则会让每个页面的链接变成「域名/页面标题.html」的格式,比如你的people页面会生成https://myurl.com/people.html,和上传的文件名完全匹配。
  • 如果你之前在某些页面的front matter里自定义过permalink(比如在页面顶部写了permalink: /people),记得要么删掉这个自定义项,要么同步改成permalink: /people.html
  • 重新执行bundle exec jekyll build,把新生成的_site文件夹内容上传到name.com的public_html目录,问题就能解决了。

方向2:配置name.com主机支持干净URL

如果你想保留/people这种简洁的URL格式,可以让服务器自动把无后缀的路径映射到对应的.html文件:

  • 大部分name.com的主机用的是Apache服务器,你需要在public_html目录下创建一个.htaccess文件(注意文件名开头有个点,是隐藏文件)
  • 在.htaccess里添加以下规则:
    RewriteEngine On
    # 如果请求的不是文件或目录
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # 自动添加.html后缀
    RewriteRule ^(.*)$ $1.html [L]
    
  • 保存后把.htaccess上传到public_html根目录,确保文件权限设置为644(服务器能读取)
  • 这样当用户访问https://myurl.com/people时,服务器会自动去找people.html文件,不会再返回404了。

两种方案的小建议

  • 方向1操作简单,不需要碰服务器配置,适合刚接触Jekyll的新手,缺点是URL会多一个.html后缀
  • 方向2能保持更美观的干净URL,用户体验更好,但需要你对服务器配置有一点点了解

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:19:53