この問題は、ユーザー ページとプロジェクト ページの両方で、ルート ディレクトリが常にユーザー URL (user.github.com) であるため発生します。これに対する解決策を見つけました:ファイルurl
内の変数を_config.yml
github プロジェクト ページに構成します。
safe: true
...
url: "http://user.github.io/project-name"
次に、レイアウトでsite.url
変数を使用して絶対参照を使用します。
<link rel="stylesheet" href="{{ site.url }}/css/styles.css">
次を使用してサーバーを実行します。
$jekyll --server --url=http://localhost:4000
コマンド ライン オプションは、ローカル モードで構成ファイルの設定を上書きします。これらの設定により、github とローカル モードの両方でホストされている適切な場所を指すすべてのリンクを取得できます。
更新: Jekyll 1.0 Jekyll が 1.0 に達したため、前述のオプションserver
とurl
それに対応するコマンド ライン オプションは廃止されました--server
。--url
新しいバージョンの手順:
_config.yml
ファイルに変数を追加します(baseurl
末尾のスラッシュなし)。
baseurl: "http://user.github.io/project-name"
site.baseurl
レイアウトまたはページでは、変数を使用して絶対参照を使用します。
<link rel="stylesheet" href="{{ site.baseurl }}/css/styles.css">
次に、ローカル サーバーを実行します (baseurl オプションは意図的に空にしています)。
$ jekyll serve --watch --baseurl=
変更点の詳細については、ドキュメントを参照してください。