配置自定义域名时GitHub Pages项目站点是否位于域名根目录?
答案
给项目类GitHub Pages站点绑定自定义域名后,正确访问地址是www.example.com,不需要带仓库名后缀/repo-name。
为什么默认地址带后缀,绑了域名就不带?
默认情况下,同一账号下所有项目类Pages站点都共用<username>.github.io这一个根域名,GitHub没办法区分不同项目的路由,只能给每个项目加个和仓库名一致的路径前缀做隔离,这才会有默认地址里的/repo-name段。
等你给单个项目站点绑上独立自定义域名,GitHub会直接把这个域名的所有请求路由到对应项目仓库的Pages发布目录,相当于这个域名现在专属这一个项目,根本不需要再加仓库名做区分,自然就没有后缀了。
容易踩的坑
- 要是你之前写页面的时候,把静态资源路径、站内跳转链接都硬编码成了带
/repo-name前缀的写法,绑完自定义域名这些路径全都会返回404,得改成相对路径,或者直接用根路径的写法适配。 - 举个实际例子:你账号叫
octocat,仓库名叫travel-blog,默认地址是octocat.github.io/travel-blog,之前写的头图路径是/travel-blog/img/banner.jpg;等绑完www.example.com,这张图的实际可访问路径是www.example.com/img/banner.jpg,原来的硬编码路径肯定找不到文件。 - DNS配置生效后,直接访问自定义域名根路径就能加载站点首页,反而刻意访问
www.example.com/repo-name会出404——除非你自己特意在发布目录里建了个和仓库同名的文件夹存放内容。
内容的提问来源于stack exchange,提问作者noymer
相关产品推荐
相关产品推荐

