この記事の目次
相対パスと絶対パスの違いとは
パスとは、HTML の中で「ファイルの場所」を表す書き方です。画像の src、リンクの href、CSS を読み込む <link> の href などに書きます。画像や CSS が表示されないトラブルの多くは、このパスの書き間違いが原因です。
パスには、大きく分けて「相対パス」と「絶対パス」があります。相対パスは今開いている HTML ファイルの場所から見た道順、絶対パスはどこから見ても同じ住所です。この記事では、2つの違いと、表示されないときの確かめ方を、実際にブラウザで表示を確かめた例で説明します。
基本(3種類の書き方)
| 種類 | 例 | 意味 |
|---|---|---|
| 相対パス | images/photo.png |
今のファイルと同じ場所にある images フォルダの photo.png |
| 相対パス(上へ) | ../images/photo.png |
1つ上のフォルダに戻ってから images フォルダへ |
| ルート相対パス | /images/photo.png |
サイトの一番上(ドメインの直下)から見た場所 |
| 絶対 URL | https://example.com/images/photo.png |
ドメインまで含めた完全な住所 |
../ は「1つ上のフォルダへ」という意味で、2つ上なら ../../ と重ねます。MDN の学習ガイドでも、同じ階層は ファイル名、下のフォルダは フォルダ名/ファイル名、上のフォルダは ../ と説明しています。
具体例(フォルダ構成と書き方)
次の構成で考えます。
my-site/
├─ index.html
├─ css/style.css
├─ images/photo.png
└─ blog/
└─ post.html
| どのファイルから | 何を | 正しい書き方 |
|---|---|---|
| index.html | 画像 | images/photo.png |
| index.html | CSS | css/style.css |
| blog/post.html | 画像 | ../images/photo.png |
| blog/post.html | CSS | ../css/style.css |
| blog/post.html | トップへのリンク | ../index.html |
動作確認(検証環境と結果)
blog/post.html に、次の3つの画像を書いて表示を確かめました(Microsoft Edge、2026年10月)。
<img id="a" src="../images/photo.png" alt="相対パス(1つ上へ)">
<img id="b" src="images/photo.png" alt="間違い:blogフォルダの中を探す">
<img id="c" src="/images/photo.png" alt="ルート相対パス">
| 開き方 | a(../images/) | b(images/) | c(/images/) |
|---|---|---|---|
| ファイルを直接開く(file://) | 表示された | 表示されない | 表示されない |
| ローカルのサーバー経由(http://) | 表示された | 表示されない | 表示された |
b は、blog フォルダの中に images フォルダを探しに行くため、見つかりません。c のルート相対パスは、サーバー経由では動きますが、ファイルを直接開いたときは「パソコンのドライブの一番上」を基準にしてしまうため、見つかりませんでした。同じページで ../css/style.css の CSS も正しく読み込まれました。
実践のステップ(表示されないときの確かめ方)
- 表示されない画像を右クリックし、「画像を新しいタブで開く」などで、ブラウザが探しに行った URL を確かめます。
- 開発者ツールの Network タブで、その画像の行が
404(見つからない)になっていないかを見ます。 - 今開いている HTML ファイルの場所から、目的のファイルまでの道順を、フォルダを1つずつたどって書き直します。
- ファイル名の大文字・小文字、拡張子(
.pngと.PNG、.jpgと.jpeg)が一致しているかを確かめます。
相対パスと絶対パスの違いの注意点
- 大文字と小文字は区別されると考える: MDN も、多くのサーバーは大文字と小文字を区別すると説明しています。パソコンでは表示されても、公開すると表示されない原因になります。ファイル名は半角の小文字にそろえます。
- 空白と日本語のファイル名は避ける: 空白は URL で
%20に置き換わるなど扱いが一定しません。区切りはハイフン(-)を使います。 - ルート相対パスは置き場所に注意: サイトをドメインの直下ではなくフォルダの中に置くと、
/images/が別の場所を指します。
相対パスと絶対パスの違いでよくあるミス
C:Users...photo.pngのような、自分のパソコンの場所をそのまま書く(公開すると誰も見られません)。(バックスラッシュ)で区切る。Web のパスの区切りは/です。- ファイルを別のフォルダに移したのに、パスを直し忘れる。
相対パスと絶対パスの違いのチェックリスト
- [ ] 今開いている HTML の場所から道順を書いた
- [ ] 1つ上のフォルダは
../で表した - [ ] ファイル名を半角小文字・空白なしにそろえた
- [ ] 開発者ツールで
404がないことを確かめた
相対パスと絶対パスの違いのFAQ(よくある質問)
Q. 相対パスと絶対パスは、どちらを使えばいいですか?
A. 同じサイトの中のファイルは、相対パスで書くのが基本です。サイトの置き場所が変わっても、フォルダの関係が同じなら動き続けるからです。ほかのサイトへのリンクは、https:// から始まる絶対 URL で書きます。
Q. ./images/photo.png の ./ は何ですか?
A. 「今のフォルダ」という意味で、images/photo.png と同じ場所を指します。
Q. CSS の中の画像のパスは、どこから見た場所ですか?
A. CSS ファイルの中に書いた url() は、HTML ではなく、その CSS ファイルの場所から見た道順で書きます。
筆者の見解(相対パスと絶対パスの違い)
パスの間違いは、初心者が最初にぶつかる壁でありながら、エラーとして目立たないため気づきにくいと感じます。私は「今開いているファイルの場所から、フォルダを指でたどる」習慣と、開発者ツールで 404 を探す習慣の2つがあれば、ほとんどのケースは数分で解決できると考えます。最初からファイル名を半角小文字にそろえておくことが、公開後のトラブルを減らす一番安い対策だと思います。
相対パスと絶対パスの違いの関連項目
- Webサイトが表示される仕組み|ブラウザ・サーバー・URLの基本
- ブラウザの開発者ツールの使い方|要素・Console・スマホ表示
- CSSの書き方と読み込み方|link・セレクタ・プロパティの基本
- Webサイトの公開手順|SFTPでサーバーにアップロード
- picture と srcset の使い方|sizes・レスポンシブ画像の書き方

