在 github pages 上部署静态网站时,所有被 html 引用的资源(如图片、pdf、css、js 等)必须一并提交到仓库并公开,否则访问者将看到 404 错误;github pages 不支持后端服务,无法动态提供私有文件。
当你在本地开发一个网站(例如首页嵌入 Canva 导出的 PNG 图片,并通过 下载报告 链接到本地 PDF 文件),这些资源不会自动“跟随”HTML 一起上线——它们只是你电脑上的文件。要让访客正常查看或下载,你必须主动将这些文件纳入 GitHub 仓库,并确保路径引用准确。
组织项目结构(推荐)
将资源分类存放,例如:
my-website/ ├── index.html ├── style.css ├── script.js ├── assets/ │ ├── images/ │ │ └── hero-banner.png ← 你的 Canva 图片 │ └── docs/ │ └── report.pdf ← 你链接的文档
在 HTML 中使用相对路径引用
@@##@@ 查看完整报告
提交全部文件到 GitHub
使用 git add .(或明确添加 assets/ 目录),再 git commit -m "add images and docs" → git push。只有出现在仓库中的文件,GitHub Pages 构建后才会托管并可被公网访问。
部署后,直接访问资源 URL 测试:
? https://yourname.github.io/my-website/assets/images/hero-banner.png
若返回图片,则路径正确;若显示 404,则检查:
若确实需要限制文件访问(如仅授权用户下载 PDF),静态托管无法满足,此时应:
总之,GitHub Pages 的核心原则是:所见即所存,所链即所传。把文件放进仓库、路径写对、推送到远程——访客就能看到;反之,必报错。清晰理解这一机制,是构建可靠静态网站的第一步。