2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub Pagesでpathが重複している場合の優先度

Posted at

TL;DR

GitHub Pagesのユーザータイプ用リポジトリで公開しているpathとプロジェクトタイプのリポジトリ名に由来するpathが同名で競合している場合、プロジェクトタイプが優先される。例えば<username>/<username>.github.io配下に/exampleで公開されるコンテンツがあり、同時に<username>/exampleというリポジトリがあってGitHub Pagesを有効にしている場合、https://<username>.github.io/exampleでは後者が表示される。

本文

GitHub Pagesについて調べたメモ。GitHub Pages について - GitHub Docs(や英語版)の内容と実際にリポジトリを作って挙動を調べた結果をまとめる。

GitHub Pagesにはタイプが3種類ある。

  1. プロジェクト (project)
  2. ユーザー (user)
  3. 組織 (organization)

今回はOrganizationでは実験しておらず、この記事はプロジェクトタイプとユーザータイプに限った内容になる(ユーザータイプと組織タイプはどちらも特定のアカウントに紐づくものと説明されているので、似た挙動が多そうではある)。

ユーザータイプはhttp(s)://<username>.github.io/というURL以下でコンテンツを公開でき、サブディレクトリを作ることもできる。プロジェクトタイプはhttp(s)://<username>.github.io/<repository>/というURL以下になる。ということは、ユーザータイプ用リポジトリのサブディレクトリ名と、それとは別の(GitHub Pagesを有効にしている)リポジトリ名が重複している場合、URLが競合してしまう。このときどちらが優先されるのか知りたかった。

実際にcu39/project-typeというリポジトリにindex.htmlというファイルをコミット・プッシュし、同時にcu39/cu39.github.ioにも(中身を変えた)project-type/index.htmlを作り、両方ともGitHub Pagesを有効にしてみたところ、https://cu39.github.io/project-type/で表示されたのはcu39/project-typeのほうのコンテンツだった。

なお、ユーザータイプ配下にプロジェクトタイプ(リポジトリ名)と競合しないディレクトリを作った場合には、ユーザータイプ側のコンテンツがきちんと表示される。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?