0

Jekyll はローカル マシン (OS X 10.7.4、ruby 1.9.3) では _plugins フォルダーを正常に処理していますが、サーバー (Ubuntu 12.04、ruby 1.9.3) では処理していません。どちらにも同じバージョンの Jekyll がインストールされています (0.11.2)。

ここで、generate_sitemap プラグインを使用しようとしています。

私は git と post-receive フックを介してデプロイしています。これは次のようになります。

#!/bin/bash -l

GIT_REPO=/my_repo.git
TMP_GIT_CLONE=/my_temp_folder/
PUBLIC_WWW=/my_public_folder/

git clone $GIT_REPO $TMP_GIT_CLONE
jekyll --no-auto $TMP_GIT_CLONE $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

デプロイ時に次のエラーが表示されます。

remote: /home/ed/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.

しかし、私が読んだ限りでは、これはマルクの警告であり、プラグインとは何の関係もありません。

これを理解するために私ができることについて、誰かアイデアがありますか? 私は少し途方に暮れています。

4

3 に答える 3

5

Jekyllでデバッグするのは非常に難しいですが、それは素晴らしいツールです!!!

_pluginsフォルダーに複数のプラグインがあると思います。

したがって、プラグインの1つまたはいくつかが問題を引き起こしている可能性があります。

私が正しければ、次のことができます:

  • あなたのジキルを殺す
  • プラグインのバックアップを別の場所(_pluginsフォルダーではない)に作成します。
  • _pluginsフォルダーにプラグインを1つだけ残して、Jekyllを起動します。
  • それが機能する場合は、Jekyllに失敗するプラグインが見つかるまで、別のプラグインを_pluginsフォルダーにコピーします。

それを見つけたら、問題のあるプラグインにデバッグプリントアウトを追加できます(それが私がやったことです)。

のようなもの: 「前に....」を置きます

私はJekyllのみを使用してhttp://www.cloudifysource.org/を構築しました。GitHubリポジトリで多くの有用な例を見つけて使用できます:https ://github.com/CloudifySource/cloudifysource.github.com

于 2012-07-24T07:44:06.857 に答える
2

post-receive フックから呼び出されたときに Jekyll がプラグインをロードしないという同じ問題がありました。

上記のコメントで述べたように、現在の作業ディレクトリを変更すると$TMP_GIT_CLONEうまくいきます。

_config.yml を変更する必要はありません。

#!/bin/bash -l

GIT_REPO=/my_repo.git
TMP_GIT_CLONE=/my_temp_folder/
PUBLIC_WWW=/my_public_folder/

git clone $GIT_REPO $TMP_GIT_CLONE
cd $TMP_GIT_CLONE                             # move to the temp dir
jekyll --no-auto $TMP_GIT_CLONE $PUBLIC_WWW
cd                                            # move back to allow deletion
rm -Rf $TMP_GIT_CLONE
exit

これは、git ユーザーが正常に動作するため、元の post-receive フックを手動で実行するのを見ると、頭を悩ませます... とにかく、Jekyll は現在、サーバーにプラグインをロードしています。解決。

于 2012-12-13T22:44:44.260 に答える