画像パスは絶対あってるのに表示されない。
画像URLを直でブラウザに入れると404エラー。
こないだサーバーを引っ越した時にプチハマリしましたorz
結論を言うと、画像のファイルパスがあっているのに表示されない原因は文字コードです。
無事解決に至ったので何をしたかや、そうならないための対策などメモします☆
サーバー上のファイルが文字化けしていた
引っ越し元のサーバーから画像ファイルをダウンロードしようとすると、文字化けが。
ダウンロードできない訳じゃないけど、このままダウンロードすると、
ってな感じでファイル名が文字化けしたままで、これをアップしてもファイル名が違うから画像が表示されない><
FTPソフトで接続する時の文字コードが選べる
調べてみると、FTPソフトの設定で接続する時の文字コードを選べるみたい。
わたしはFileZillaを使っているんだけど、
いつもの画面にある「文字コード」をクリックして、
この「UTF-8を強制」にチェックして「接続」すると文字化けが収まりました。
でも引っ越し先のサーバーでは画像が表示されない
文字化けを直した画像ファイルを、そのまま引っ越し先のサーバーへアップすると、404エラーに(ノД`)・゜・。
↓こんな感じ。
ファイル名が日本語の画像ファイルが表示されない。
ファイル名が日本語なのがいけないのかというと、引っ越す前のWordPressではこの日本語の状態で普通に表示されていたんだよね。
だから、“日本語だから表示されない”というわけではないはず。
となると怪しいのはやはり文字コード。
「UTF-8」でアップロードし直す
引っ越し先のサーバーへ接続する時も、ダウンロードした時と同じように文字コードを「UTF-8」で接続してみました。
それでアップロードすると・・・。
ビンゴ!
画像の404エラーは解消され、無事に表示されたとさ。
念のため注意
FileZillaの場合だけど、文字コードを「UTF-8を強制」にしたのはソフトを閉じても保存されるみたいです。
次立ち上げた時も「UTF-8を強制」になっているので、これは戻しといた方がいいんじゃないかな?
あんまり詳しくないけど、これ以上文字コードでややこしくなりたくないorz
学んだこと
画像にも文字コードがあるんだなね。
.phpファイルとはよくテキストエディタで「文字コード指定保存」とかやってたから馴染み合ったけど。
文字コードが違うと、名前も全く同じが2つ存在しているようにも見える(;゚Д゚)
こうならないための対処法
ファイル名を日本語にしないように。
「表示されるからいいや」とか思って油断してると、後々苦労する可能性が。
いちいち英数字に直すのが面倒だって?
WordPressなら、「WP Multibyte Patch」を使うとこの問題は解消されるのでおすすめです。
WP Multibyte Patchっていうと、昔は必須プラグインとして日本語のWordPressにはデフォルトで入ってたんだけどね。
以前にWP Multibyte Patchが必要か?っていう記事を書いたので、まだ時間があれば見てみてください(*´ω`*)
あとがき
画像ファイルを日本語のまま使うなんて、って思ったかも知れない。
でもこれわたしのサイトじゃなくてさ。
父親のブログで(笑
ずっとfc2ブログ使ってたみたいなんだけど、月額300円がどうのこうのってうるさかったから、独自ドメインでWordPressをおススメして。
サーバーはコアサーバーで容量余裕だったから共存って感じで。
そしたら、撮った写真を日本語ファイル名のままアップしまくっていた(汗
しかも WP Multibyte Patch は停止されてるし・・・。
自分では当たり前のことでも、他の人はそうと限らないから、しっかり説明するのはとても大事だと思いました(*‘∀‘)