12

私はここで頭がいっぱいです。私が見つけることができる他のすべてのサンプル github プロジェクト ページとブログを見ようとしましたが、私が得ている問題を示すものはありません。まず、リポジトリ用のプロジェクト ページを作成しようとしています。これを行うには、通常のチュートリアルに従い、プロジェクト リポジトリに gh-pages ブランチを作成してプッシュしました。

これらを実行して、ファイルをテンプレート化することができました。私はなんとかHAMLとSASSを使用することさえできました(どちらもまだhtml/cssに変換されており、それがレポにプッシュされているので問題ありません)。私は自分のjekyllを間違って設定していると思います。まず、config.yml で baseurl または url を使用している他の人のページに構成が見当たりません。

私の問題は、私の投稿をループするときです:

{% for post in site.posts %}
  <a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}

href は常に次のように生成されます。href="/post-title"

私の_config.ymlところではこれしかありません:

permalink: /exercises/:title

リンクをクリックすると、実際にはhttp://corroded.github.com/projectname/exercises/title-であるはずなのに、常にhttp://corroded.github.com/exercises/title-hereを指す問題ここ

私は実際に次のようにしてパスをハードコーディングしようとしました:

<a href="http://corroded.github.com{{ post.url }}">これは機能します。投稿に移動しますが、生成されたhtmlではなくプレーンテキストとして表示されます。ここで非常に単純なものが欠けていることはわかっていますが、それを見つけることができないようで、週末中ずっとこれに取り組んできました。

ああ、追加するのを忘れていました: ローカルホストでこれを行うと、次のすべてにアクセスできます:

http://localhost:4000/リンクをクリックするhttp://localhost:4000/exercises/title-hereと、IT WORKS にアクセスできます。したがって、構成と関係があるとかなり推測しています。

4

2 に答える 2

29

編集: この回答はhttp://jekyllrb.com/docs/github-pages/の Jekyll ドキュメントに追加されました。


GitHub Pages ( ) の標準 URL を使用したソリューションを探している場合、私はついにトリックを見つけましたusername.github.io/project-name/。やるべきことは次のとおりです。

で、オプションを--_config.ymlに設定します。先頭のスラッシュと末尾のスラッシュがないことに注意してください。baseurl/project-name

ここで、次の 2 つの方法で、テンプレートと投稿でのリンクの方法を変更する必要があります。

JS または CSS ファイルを参照する場合は、{{ site.baseurl }}/path/to/css.css次のようにします。 -- 変数の直後 (「パス」の直前) のスラッシュに注意してください。

パーマリンクまたは内部リンクを作成する場合は、次のようにします。 -- 2 つの変数の間にスラッシュがない{{ site.baseurl }}{{ post.url }}ことに注意してください。

最後に、 を使用してコミット/デプロイする前にサイトをプレビューしたい場合は、オプションに空の文字列jekyll serveを渡してください。これにより、すべてを正常に表示できるようになります (すべてを台無しにする必要はありません)。--baseurllocalhost:4000/project-namejekyll serve --baseurl ''

このようにして、localhost のサイト ルートからローカルでサイトをプレビューできますが、GitHub が gh-pages ブランチからページを生成すると、すべての URL が開始され/project-name、適切に解決されます。

issue #332でこの問題についての会話が増えました。

于 2013-06-05T03:07:00.543 に答える
9

パーマリンクの先頭にスラッシュがある場合、それはすべての URL がサイト ルートに相対的であることを意味します。これが、http://corroded.github.com/exercises/title-here代わりにhttp://corroded.github.com/projectname/exercises/title-here. 最初のスラッシュなしで試してください:

permalink: exercises/:title

HTML で作成した URL についても同じことが言えます。あなたが持っている場合:

<a href="/about">

常にドメインのルート (例: http://corroded.github.com/about) に移動します。プロジェクトの名前が「projectname」の場合、次のような HTML を使用できます。

<a href="/projectname/about">

ページに直接リンクする (例: http://corroded.github.com/projectname/about)。

もちろん、相対 URL (つまり、先頭にスラッシュがない URL) も使用できます。ディレクトリツリーのどこにいるのかを知っておく必要があります。

于 2012-05-14T19:02:27.027 に答える