SerchCode Pro
コード解説 SQLチェッカー JSON生成 JSON整形 RegExテスター CSS Shadow カラー変換 CRON生成 Base64変換 ブログ
SerchCode Pro
コード解説 🔍 SQLチェッカー 🔍 JSON生成 🔧 JSON整形 🔧 RegExテスター 💻 CSS Shadow 🔲 カラー変換 🔲 CRON生成 💻 Base64変換 🖌 ブログ 📖

このサイトについて プライバシーポリシー
ダークモード ライトモード

【絶対パス vs 相対パス】もう迷わない!画像が表示されない原因と解決策

公開日: 2025年10月02日

HTMLとCSSを学び始め、自分のWebページに初めて画像を配置しようとした時。あるいは、CSSファイルを別のフォルダに整理した時。多くの学習者が、同じ絶望的な壁にぶつかります。

「画像が表示されない!」「CSSが効かない!」

コードは一行も間違っていないはずなのに、なぜかブラウザには壊れた画像のアイコンが表示される。この問題の原因の9割は、「パスの指定ミス」にあります。 今日は、このWeb開発の最初の関門である「絶対パス」と「相対パス」の違いを、もう二度と迷わないように、完璧に解説します。

パスとは何か?:ファイルへの「道順」

「パス (Path)」とは、単純に言えば、あるファイルから、別のファイルまでの「道順」や「住所」のことです。 index.html が style.css を読み込んだり、 タグが dog.jpg を表示したりするためには、この「道順」を正しく教えてあげる必要があります。 そして、この道順の書き方には、2つの主要なスタイルがあります。

絶対パス:世界中の誰もがたどり着ける「絶対的な住所」

絶対パスとは、地球上のどこから見ても、絶対にその場所にたどり着ける、完全な住所のことです。 Webの世界では、これは https:// から始まる、完全なURLを指します。

<!-- 絶対パスの例 -->
<img src="https://serch-code-pro.onrender.com/static/images/logo.png">

この書き方をすれば、このHTMLファイルが世界のどこにあっても、必ず serch-code-pro.onrender.com というサーバーの、static/images フォルダの中にある logo.png を見つけ出すことができます。

  • いつ使うか?: 外部サイトの画像を引用したり、CDN(コンテンツデリバリーネットワーク)上のライブラリを読み込んだりする時に使います。
  • メリット: 確実性。ファイルの位置関係が変わっても、リンクが切れることはありません。
  • デメリット: URLが長くなる。もし将来、サイトのドメインを変更したら(例: onrender.com から独自ドメインへ)、すべての絶対パスを書き換える必要があります。

相対パス:今いる場所からの「相対的な道順」

一方、相対パスとは、「今いるこのファイルから見て、目的のファイルはどっちの方向にあるか」を示す、相対的な道順です。 現実世界で、「そこの角を右に曲がって、2軒目だよ」と教えるようなものです。

相対パスでは、いくつかの特別な記号を使います。

  • ./ (または、何も付けない): 今いる場所(同じ階層)
  • ../: 一つ上の階層
  • /: ルートディレクトリ(サイトの一番上の階層) ※これは「ルート相対パス」と呼ばれる特殊な相対パスです。

例で学ぶ、相対パスの書き方

あなたのサイトが、以下のようなフォルダ構造になっているとします。

/ (ルート)
├─ index.html
├─ blog/
│  └─ post-1.html
└─ static/
   ├─ style.css
   └─ images/
      └─ dog.jpg

ケース1:index.html から dog.jpg を読み込む

index.html から見ると、dog.jpg は static フォルダの中の images フォルダの中にあります。

<!-- "今いる場所"から、static → images → dog.jpg と進む -->
<img src="static/images/dog.jpg">

ケース2:post-1.html から dog.jpg を読み込む

post-1.html(blogフォルダの中)から見ると、まず**一つ上の階層 (../) に戻ってから、static フォルダに進む必要があります。

<!-- "一つ上"に戻り、そこから static → images → dog.jpg と進む -->
<img src="../static/images/dog.jpg">

もし、ここで static/images/dog.jpg と書いてしまうと、ブラウザは blog/static/images/dog.jpg という、存在しない場所を探しに行ってしまい、画像は表示されません。これこそが、多くの初心者が陥る罠なのです。

まとめ:どちらを、いつ使うべきか?

基本的なルールは、非常にシンプルです。

  • 自分のサイト内のファイル(画像、CSS、他のページへのリンク)を読み込む時: 相対パスを使う。
  • 外部のサイトのファイル(CDNのライブラリなど)を読み込む時: 絶対パスを使う。

相対パスを使いこなせるようになることは、ファイルとフォルダを整理し、メンテナンス性の高いWebサイトを構築するための、必須のスキルです。 もし画像が表示されなかったら、慌てずに、デベロッパーツールの「コンソール」を見てみましょう。「404 Not Found」のエラーが、あなたが間違って指定してしまった「道順」を、きっと教えてくれますよ。

プログラミング学習に必須ツール!

記事で紹介したコードがよく分からなかったり、ご自身のコードについてもっと知りたい場合は、AIコード解説ツールが便利です。コードを貼り付けるだけで、AIが日本語で分かりやすく解説します。

AIコード解説ツールを使ってみる →

この記事を書いた人

ハンドルネーム:雲海 墨汁(うんかい ぼくじゅ)

プログラミング独学で挫折後、上京しWeb系企業に就職。4年間、主にバックエンド開発に従事し、
大規模サービスの設計から運用までを経験。
現在は、自身の学習経験を活かし、初心者向けのツール開発に情熱を注いでいる。

詳しいプロフィールを見る →
← ブログ一覧に戻る
このサイトについて ブログ 特定商取引法に基づく表記 プライバシーポリシー
© 2025 株式会社Serchcode . All Rights Reserved.