24

jekyll --serverサイトを実行すると、で利用できますhttp://localhost:4000/が、GitHub Project Pagesにデプロイすると、で利用できますhttp://username.github.com/projectname/

これは、スタイルシートやその他のリソースを参照するときに絶対URLを使用できないことを意味します。index.html相対URLは、egと。で同じレイアウトが使用されている場合に壊れます2012/01/01/happy-new-year.html。GitHubプロジェクトページリポジトリにスタイルシートやその他のリソースを追加するための-受け入れられた/良い方法は何ですか?

GitHubの問題へのクロスポスト。

4

5 に答える 5

29

この問題は、ユーザー ページとプロジェクト ページの両方で、ルート ディレクトリが常にユーザー URL (user.github.com) であるため発生します。これに対する解決策を見つけました:ファイルurl内の変数を_config.ymlgithub プロジェクト ページに構成します。

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 に達したため、前述のオプションserverurlそれに対応するコマンド ライン オプションは廃止されました--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=

変更点の詳細については、ドキュメントを参照してください。

于 2013-04-16T21:21:39.953 に答える
2

jekyll の最新バージョン (1.1.2) では、元の構成ファイルとは別の構成ファイルを作成するのが最善であることがわかりました。唯一の違いは?url (または baseurl 変数)。

デフォルトの _config.yml には次のものがあります。

url: myurl.com

新しい構成 (_preview_config.yml と呼びましょう):

url: localhost:4000

これにより、使用する構成に応じて、すべての絶対リンクが再割り当てされます。プレビュー構成を使用してサーバーを実行するには、次を使用します。

jekyll serve -w --config _preview_config.yml

完全な説明は私のブログにあります。

于 2013-09-02T20:35:26.757 に答える
0

私は jekyll-bootstrap を使用し、ポート 4000 でローカルにデプロイしますが、私の github ページの URL は user.github.com です...最初にレポをどのように作成したかによると思います。もともと私は、ウィザードのような方法でレポを作成する github が提供する自動ページ ビルダーを使用していました。

次の手順に従いました。

http://jekyllbootstrap.com/

それが役立つことを願っています

于 2013-01-15T03:05:28.753 に答える