原因は、このブログの開発環境にありました。
このブログは静的コンテンツなのですが、次のような手順でブログを運営しています。 (Rakefileで自動化されていますが、内部ではこうなっています)
- ローカル(Mac OS X)でブログを生成する。
- サーバ(Ubuntu)にRsyncで生成したブログをアップロードする。
Mac OS X では、ファイル名のエンコードにUTF-8-MAC
を使っているので、
そのままアップロードすると、サーバ上のファイル名もUTF-8-MAC
になります。
しかし、ファイル自体のエンコードはUTF-8
でURLをパーセントエンコーディングしていないので、
リンク先が見つからなくなってしまうようです。
UTF-8-MAC問題について詳しく知りたい人は、こちらなどが勉強になるとおもいます。
解決方法は簡単で、Rsyncでアップロードするときに、--iconv
オプションを使い、
ファイル名をUTF-8-MAC
からUTF-8
に変換すれば治ります。