Skip to main content

GitHub Pages サイトの Jekyll ビルドエラーに関するトラブルシューティング

Jekyll ビルドエラーのメッセージを利用して、GitHub Pages サイトの問題をトラブルシューティングすることができます。

GitHub Pages は GitHub AE の内部およびプライベート リポジトリで利用できます。 GitHub Pagesは、GitHub Free及びOrganizationのGitHub Freeのパブリックリポジトリ、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Serverのパブリック及びプライベートリポジトリで利用できます。

ビルドエラーのトラブルシューティング

GitHub Pages サイトをローカルで、または GitHub AE 上でビルドしているときに Jekyll でエラーが発生した場合、そのエラーメッセージをトラブルシューティングに利用できます。 エラー メッセージとその表示方法の詳細については、「GitHub Pages サイトの Jekyll ビルド エラーについて」を参照してください。

一般的なエラーメッセージが表示された場合は、よくある問題をチェックします。

  • サポートされていないプラグインを使用している。 詳細については、「GitHub Pages と Jekyll について」を参照してください。
  • _config.yml ファイルの source 設定を変更しました。 GitHub Pages によってオーバーライドされます。
  • 公開元のファイル名にコロン (:) が含まれていますが、これはサポートされていません。

具体的なエラーメッセージが表示された場合は、エラーメッセージに関する以下のトラブルシューティング情報を確認してください。

エラーを修正したら、サイトの公開元にその変更をプッシュして、GitHub AE 上で別のビルドをトリガーします。

Config file error

このエラーは、 _config.yml ファイルに構文エラーが含まれているため、サイトのビルドに失敗したことを意味します。

トラブルシューティングを行うには、 _config.yml ファイルが次のルールに従っていることを確認します。

  • タブの代わりにスペースを使ってください。
  • timezone: Africa/Nairobi のように、キーと値の各ペアの : の後にスペースを含めます。
  • UTF-8キャラクタだけを使ってください。
  • : などの特殊文字は引用符で囲み、title: "my awesome site: an adventure in parse errors" のようにします。
  • 複数行の値の場合は、| を使用して改行を作成し、> を使用して改行を無視します。

エラーを特定するには、YAML ファイルの内容をコピーし、YAML Validator などの YAML リンターに貼り付けます。

Date is not a valid datetime

このエラーは、サイトのいずれかのページに無効な日付データが含まれていることを意味します。

トラブルシューティングするには、エラーメッセージで示されたファイルおよびファイルのレイアウトで、日付関連の Liquid フィルタをコールしている箇所を探します。 日付関連の Liquid フィルターに渡される変数には、すべてのケースで値が含まれていることを確認し、nil"" を渡さないようにしてください。 詳細については、Liquid ドキュメントの「Liquid filters」(Liquid フィルター) を参照してください。

File does not exist in includes directory

このエラーは、 _includes ディレクトリに存在しないファイルをコードが参照していることを意味します。

トラブルシューティングを行うには、エラー メッセージで include のファイルを検索して、{% include example_header.html %} などの他のファイルを参照した場所を確認します。 参照したファイルのいずれかが _includes ディレクトリにない場合は、ファイルを _includes ディレクトリにコピーするか、移動します。

このエラーは、サイトの公開されたファイル内に存在しないシンボリックリンクされたファイルをコードで参照していることを意味します。

トラブルシューティングを行うには、エラー メッセージで include のファイルを検索して、{% include example_header.html %} などの他のファイルを参照した場所を確認します。 参照したファイルのいずれかがシンボリック リンクされている場合は、ファイルを _includes ディレクトリにコピーするか、移動します。

File is not properly UTF-8 encoded

このエラーは、これらの記号を期待するようコンピューターに伝えずに、日本語などのラテン文字以外の文字を使用したことを意味します。

トラブルシューティングを行うには、 _config.yml ファイルに次の行を追加して UTF-8 エンコードを強制します。

encoding: UTF-8

Invalid highlighter language

このエラーは、構成ファイルで Rouge または Pygments 以外の構文ハイライターを指定したことを意味します。

トラブルシューティングを行うには、 _config.yml ファイルを更新して、Rouge または Pygments を指定します。 詳細については、「GitHub AE と Jekyll について」を参照してください。

Invalid post date

このエラーメッセージは、サイトでの投稿で、ファイル名または YAML フロントマターに無効な日付が含まれていることを意味します。

トラブルシューティングするには、日付がすべて YYYY-MM-DD HH:MM:SS 形式の UTC 時間で、実際のカレンダー日付であることを確認します。 UTC からのオフセットがあるタイム ゾーンを指定するには、2014-04-18 11:30:00 +0800 のような YYYY-MM-DD HH:MM:SS +/-TTTT 形式を使用します。

_config.yml ファイルで日付形式を指定する場合は、形式が正しいことを確認してください。

Invalid Sass or SCSS

このエラーは、リポジトリに無効な内容の Sass または SCSS ファイルが含まれていることを意味します。

トラブルシューティングするには、エラーメッセージに含まれている行番号を確認して、無効な Sass または SCSS を探します。 今後のエラーを防ぐために、お好みのテキストエディター用の Sass または SCSS 文法チェッカーをインストールします。

Invalid submodule

このエラーは、適切に初期化されていないサブモジュールがリポジトリに含まれていることを意味します。

トラブルシューティングするために、まずGitプロジェクト内のGitプロジェクトであるサブモジュールを本当に使いたいかを判断してください。サブモジュールは偶然作られてしまうことがあります。

サブモジュールを使用しない場合は、サブモジュールを削除し、PATH-TO-SUBMODULE をサブモジュールへのパスに置き換えます。

$ git submodule deinit PATH-TO-SUBMODULE
$ git rm PATH-TO-SUBMODULE
$ git commit -m "Remove submodule"
$ rm -rf .git/modules/PATH-TO-SUBMODULE

サブ モジュールを使用する場合は、サブモジュールを参照するときに https:// を使用し (http:// ではなく)、サブモジュールがパブリック リポジトリにあることを確認してください。

Invalid YAML in data file

このエラーは、 _data フォルダー内のいずれかのファイルに無効な YAML が含まれていることを意味します。

トラブルシューティングを行うには、 _data フォルダー内の YAML ファイルが次のルールに従っていることを確認します。

  • タブの代わりにスペースを使ってください。
  • timezone: Africa/Nairobi のように、キーと値の各ペアの : の後にスペースを含めます。
  • UTF-8キャラクタだけを使ってください。
  • : などの特殊文字は引用符で囲み、title: "my awesome site: an adventure in parse errors" のようにします。
  • 複数行の値の場合は、| を使用して改行を作成し、> を使用して改行を無視します。

エラーを特定するには、YAML ファイルの内容をコピーし、YAML Validator などの YAML リンターに貼り付けます。

Jekyll データ ファイルの詳細については、Jekyll ドキュメントの「Data Files」(データ ファイル) を参照してください。

Markdown errors

このエラーは、リポジトリ Markdown エラーがあることを意味します。

トラブルシューティングするには、必ずサポートされている Markdown プロセッサを使用するようにします。 詳細については、「Jekyll を使用して GitHub Pages サイトの Markdown プロセッサを設定する」を参照してください。

次に、エラーメッセージで示されているファイルが有効な Markdown 構文を使っていることを確認します。 詳細については、Daring Fireball の「Markdown: Syntax」(Markdown: 構文) を参照してください。

Missing docs folder

このエラーは、ブランチ上の docs フォルダーを発行元として選択したが、そのブランチのリポジトリのルートに docs フォルダーがないことを意味します。

トラブルシューティングを行うには、docs フォルダーが誤って移動された場合は、発行元用に選択したブランチのリポジトリのルートに docs フォルダーを戻してみてください。 docs フォルダーが誤って削除された場合は、次のいずれかを実行できます。

  • Git を使用して削除を revert する、つまり取り消す。 詳細については、Git ドキュメントの「git-revert」を参照してください。
  • 発行元用に選択したブランチのリポジトリのルートに新しい docs フォルダーを作成し、このフォルダーにサイトのソース ファイルを追加する。 詳細については、「新しいファイルの作成」を参照してください。
  • 公開ソースを変更する。 詳細については、「GitHub Pages の発行元を作成する」を参照してください。

Missing submodule

このエラーは、存在しない、または適切に初期化されていないサブモジュールがリポジトリに含まれていることを意味します。

トラブルシューティングするために、まずGitプロジェクト内のGitプロジェクトであるサブモジュールを本当に使いたいかを判断してください。サブモジュールは偶然作られてしまうことがあります。

サブモジュールを使用しない場合は、サブモジュールを削除し、PATH-TO-SUBMODULE をサブモジュールへのパスに置き換えます。

$ git submodule deinit PATH-TO-SUBMODULE
$ git rm PATH-TO-SUBMODULE
$ git commit -m "Remove submodule"
$ rm -rf .git/modules/PATH-TO-SUBMODULE

サブモジュールを使用する必要がある場合は、そのサブモジュールを初期化します。 詳細については、Pro Git ブックの「Git Tools - Submodules」(Git ツール - サブモジュール) を参照してください。

このエラーは、 _config.yml ファイルに GitHub Pages でサポートされていない相対固定リンクがあることを意味します。

パーマリンクとは、サイトの特定ページを参照している恒久的な URL です。 絶対パーマリンクはサイトのルートから始まり、相対パーマリンクは参照先ページを含むフォルダで始まります。 GitHub Pages と Jekyll では、相対パーマリンクがサポートされなくなっています。 固定リンクの詳細については、Jekyll ドキュメントの「Permarinks」(固定リンク) を参照してください。

トラブルシューティングを行うには、relative_permalinks_config.yml ファイルから 行を削除し、サイト内の相対固定リンクを絶対固定リンクで再フォーマットします。 詳細については、「ファイルの編集」を参照してください。

このエラーは、サイト用の公開されたファイル内に存在しないシンボリック リンク (symlink) が、そのサイトに含まれていることを意味します。 シンボリックリンクの詳細については、ウィキペディアの「ソフト リンク」を参照してください。

トラブルシューティングするには、エラーメッセージで示されているファイルがサイトのビルドに使われているかどうかを確認します。 使われていない場合、またはファイルをシンボリックリンクにしたくない場合は、ファイルを削除します。 サイトのビルドにシンボリック ファイルが必要な場合は、そのシンボリック リンクで参照されているファイルまたはディレクトリが、サイト用の公開されたファイルにあることを確認してください。 外部アセットを含めるには、Bower などのサード パーティ製パッケージ マネージャーの使用を検討してください。

Syntax error in 'for' loop

このエラーは、コードの Liquid for ループ宣言に無効な構文が含まれていることを意味します。

トラブルシューティングを行うには、エラー メッセージ内のファイル内のすべての for ループに適切な構文があることを確認します。 for ループの適切な構文の詳細については、Liquid ドキュメントの「Iteration tags」(反復タグ) を参照してください。

Tag not properly closed

このエラーメッセージは、コードに含まれる論理タグが正しく閉じていないことを意味します。 たとえば、{% capture example_variable %}{% endcapture %} で閉じる必要があります。

トラブルシューティングするには、エラーメッセージで示されているファイルの論理タグがすべて適切に閉じられていることを確認します。 詳細については、Liquid ドキュメントの「Liquid tags」(Liquid タグ) を参照してください。

Tag not properly terminated

このエラーは、正しく閉じられていない出力タグがコードに含まれていることを意味します。 たとえば、{{ page.title }} ではなく {{ page.title } です。

トラブルシューティングを行うには、エラー メッセージ内のファイル内のすべての出力タグが }} で終了していることを確認します。 詳細については、Liquid ドキュメントの「Liquid objects」(Liquid オブジェクト) を参照してください。

Unknown tag error

このエラーは、コードに認識されない Liquid タグが含まれていることを意味します。

トラブルシューティングするには、エラーメッセージで示されているファイルの Liquid タグがすべて Jekyll のデフォルトの変数に一致し、タグ名に誤入力がないことを確認します。 既定の変数の一覧については、Jekyll ドキュメントの「Variables」(変数) を参照してください。

認識されないタグの主な原因は、サポート対象外のプラグインです。 サイトをローカルで生成し、静的なファイルを GitHub AE にプッシュすることで、サポート対象外のプラグインを使用している場合は、そのプラグインで Jekyll のデフォルトの変数と異なるタグが使われていないかどうか確認してください。 サポートされているプラグインの一覧については、「GitHub Pages と Jekyll について」を参照してください。