HTMLの画像が表示されない時の対処

画像が表示されない原因のほとんどは、パスの間違い・ファイル名や拡張子の不一致・ファイルの置き場所のずれです。上から順にチェックすれば、ほぼ確実に特定できます。

画像が表示されない主な原因

最も多い原因はsrc属性に書いたパスの間違いで、次いでファイル名の大文字小文字、拡張子の不一致と続きます。

原因と確認方法の対応は以下の通りです。

原因 確認方法
パスの間違い src属性とフォルダ構成を照合する
大文字小文字の不一致 photo.jpgとPhoto.JPGの違いを確認する
拡張子の不一致 実際のファイル形式と拡張子を見比べる
置き場所(階層)のずれ HTMLから見た画像の位置を確認する
サーバー未アップロード サーバー上に画像があるか確認する

以降で、発生頻度の高い順に対処法を解説します。F12キーで開く開発者ツールにも読み込みエラーが表示されるため、あわせて確認すると特定が早くなります。

原因1: パス・ファイル名の間違い

src属性に書いたパスが、実際のファイルの場所・名前と1文字でも違うと画像は表示されません。パスとは、HTMLファイルから見た画像ファイルの場所を示す道順のことです。

次のようなフォルダ構成を例にします。

index.html
images/
  photo.jpg

この構成での正しい書き方は、次の通りです。

<img src="images/photo.jpg" alt="商品の写真">

Webサーバーの多くは大文字と小文字を別のファイルとして区別するため、ローカルでは表示されてもサーバー上では表示されないことがあります。photo.jpgとPhoto.JPGは別物です。

.jpgと.jpeg、.pngの取り違えも定番の原因です。エクスプローラーやFinderで実際の拡張子を表示して、srcの記述と一致しているか確認してください。

原因2: ローカル・階層のずれ

HTMLファイルと画像ファイルの相対位置が想定とずれていると、パスの書き方自体が正しくても表示されません。

画像がHTMLより1つ上のフォルダにある場合は、src="../photo.jpg"のように「../」を付けて上の階層を指定します。「../」の数が足りない・多すぎるのもよくあるずれ方です。

「file:///C:/Users/…」のようなローカルの絶対パスをコピーして書くのも要注意です。自分のPCでは表示できても、サーバーにアップロードすると誰の環境でも表示されなくなるため、必ず相対パスで指定します。

サーバー公開後に表示されない場合は、FTPソフトやサーバーのファイルマネージャで、画像ファイルが実際にアップロードされているかを確認します。ファイルがある場合も、大文字小文字を含めてsrcのパスと完全に一致しているかを見直してください。

逆にローカルでだけ表示されない場合は、画像をまだダウンロードしていない、別のフォルダに保存しているといった可能性を確認します。

画像が表示されないマーク(壊れアイコン)の意味

壊れた画像のアイコンは、ブラウザが指定されたURLから画像を取得できなかったという合図です。imgタグ自体は認識されているため、疑うべきはsrc属性の中身です。

alt属性を設定していると、アイコンとあわせて代替テキストが表示されます。アイコンが出ている時点で、パス・ファイル名・置き場所のいずれかに原因があると絞り込めます。

開発者ツール(F12)のネットワークタブを開いてページを再読み込みすると、404と表示された行が読み込みに失敗した画像です。そこに出る実際のリクエストURLと、ファイルの本当の場所を見比べれば原因を特定できます。

HTMLの画像が表示されない時の対処に関するよくある質問

jpg画像なのに表示されないのはなぜですか?

実際の拡張子が.jpegになっている、大文字の.JPGになっているなど、srcの記述と実ファイル名の不一致が定番の原因です。pngでも同じ確認が有効です。

画像の中央寄せができないのはなぜですか?

imgは文字と同じ扱いのインライン要素のためです。親要素にtext-align: centerを指定するか、imgにdisplay: blockとmargin: 0 autoを指定すると中央に寄せられます。

alt属性を書かないと画像は表示されませんか?

altは表示の可否には影響しません。画像が出ない原因はsrc属性側にあります。

画像を貼り付けても表示されないのはなぜですか?

エディタへの貼り付け(ペースト)では、画像ファイルはフォルダに配置されないためです。画像をファイルとして保存したうえで、imgタグのsrcにそのパスを指定する必要があります。