Goal

仮想ホスト環境で運用していると、ローカルのIPアドレス:ポート番号(今回のケースでは http://localhost:10000 )がURLに入ってしまっていることがあります。多分理由は場所場所で絶対パスで入ってしまうせいだと思います。 仮想ホストでNginxなどでリバースプロキシしていると別の名前でアクセスすることになり問題になってしまいます。

今回導入した、アバター画像をローカルで利用できる(標準だと gavatar に取りに行ってしまう)プラグインでも同様の問題で画像が表示されない問題がありました。

修正

プラグインの中で plugin/redmine_local_avatars/lib/application_helper_avatar_patch.rb の中を修正します。

1
image_url = url_for :only_path => true, :controller => 'account', :action => 'get_avatar', :id => user

上記の url_foronly_path => falseonly_path =>trueへ変更させます。 これで相対パスになるので画像が表示されます。

まとめ

仮想ホストで使うのってそれほど変わっているわけではないと思うのでこの問題はローカルな問題なんですかね? もともとonly_pathがfalseで指定されている所見ると理由があるのかもしれません。 とりあえずおっさんの画像が表示されるようになったのでので気分が落ち着いたわ。