CMSで使うHTML内のリンクは「絶対パス」でも「相対パス」でもなく「サイトルート相対パス」がベスト【WordPress】
1年以上前の記事です。内容が古い可能性があります。
WordPressはじめ、CMSってのは便利なやつで、ヘッダーやフッターは一つのファイル(PHP等)に記述するだけで事足りてしまいます。
ただ、その際に使うリンクや画像のURL表記には注意が必要。
というのは、ヘッダーやフッターはディレクトリが配下のページになっても基本的には同じものを使うから。

一例としてトップページ(たとえばhttps://aaa.com/index.html等)のヘッダーにイメージ画像を貼っていて、そのHTMLが<img src=”img/head.png”>だったりすると、同じヘッダーをその配下(たとえばhttps://aaa.com/ccc/index.html等)でそのままの記述で使うと画像のリンクが切れて画像が表示されなくなってしまうことは容易に想像できると思います。
まあ、実際はPHPで書かれているのでWordPress関数を使ってこのあたりは対応してしまうことが多いのですが、とは言え、その関数がよくわからないなんてことも結構あるわけです。
あ、あと、WordPressを一般サイトのCMSとして運用している場合、固定ページなどにHTMLソースを書くこともありますからね。
で、そういうときは絶対パスで書いちゃうことが多いのですがそこにも落とし穴があったりするんです。
それは、https対策。
最近は、Googleなんかもhttpsのサイトの方を優先するなんて言っているみたいですが、httpsでのアクセスを意識したサイト構築も重要になっています。
仮に今、対応していなくても将来的に対応できるようにサイトを構築するべきでしょうね。
その際、絶対パスを使っちゃうとhttps化した時にいちいちパスを書き換えなくちゃいけなくなるわけです。
これも面倒。
で、以下がその解答。
そういうときは相対パスで書いちゃったほうがいいです。
え、でもさっきの<img src=”img/head.png”>って相対パスだよね?
正解。
ただ、相対パスにも種類があって、そのときに使う相対パスはサイトルート相対パスってやつを使います。
具体的には<img src=”img/head.png”>ではなく<img src=”/img/head.png”>にすればいいのです。
といったところでそれぞれ説明していきましょう。
まず、一般の相対パスについて
通常よく使われる相対パス表記には以下のような書き方があります。
| 相対パス表記 | 対象から見た場所 |
|---|---|
| ./ | 同じ場所の「index.html」 |
| ccc.html | 同じ場所の「ccc.html」 |
| aaa/aaa.html | 同じ場所の「aaa」フォルダ内の「aaa.html」 |
| ../../bbb/bbb.html | 一つ上の階層にある「bbb」フォルダ内の「bbb.html」 |
まあ、色んな書き方があるわけです。
いずれにしてもパス記述のあるHTMLファイルから見た場所というところになるのがポイントです。
一方、ルート相対パスですが至ってシンプル
上記の表にサイトルートパスを当てはめてみましょう。
前提としてindex.htmlはcccフォルダ内に入っているものとします。
| 相対パス表記 | ルート相対パス表記 | 対象から見た場所 |
|---|---|---|
| ./ | /ccc/index.html | 同じ場所の「index.html」 |
| ccc.html | /ccc/ccc.html | 同じ場所の「ccc.html」 |
| aaa/aaa.html | /ccc/aaa/aaa.html | 同じ場所の「aaa」フォルダ内の「aaa.html」 |
| ../../bbb/bbb.html | /bbb/bbb.html | 一つ上の階層にある「bbb」フォルダ内の「bbb.html」 |
前半の方はかえって面倒くさい表記になってしまっていますが、書き方、考え方はシンプルです。
すべて「/」で始まっているところがポイントでしょうか。
この書き方をするとパスの基準が常にルートディレクトリ(HTMLファイルを置いておく一番上のディレクトリ)になります。
ルートディレクトリには一般的にはトップページのHTMLファイルが入っていることが多いので、トップページのHTMLファイルから見た場所と考えると分かりやすいと思います。
つまり、この場合はルートディレクトリの中に「ccc」フォルダや「bbb」フォルダがあるというかたちになります。
この記述を使うと、どこに書かれていようと、その基準はルートディレクトリになるので仮にディレクトリが移動してしまってもリンクが切れないという利点があります。
つまり、トップページのヘッダーに貼っているイメージ画像のリンクを書き換えずにそのまま、その配下で使うことができるようになるんです。
で、どんなときに使えるの?
先程も書きましたがWordPressを一般サイトのCMSとして使っている場合に固定ページ等にHTMLを書き込みますが、その際のパス表記はルート相対パスに統一してしまうといいと思います。
また、通常は関数を使うことが多いテーマに関してもルート相対パスにしてしまってもいいんじゃないかと思ってます。
います。
なお、「WordPress」前提で書いてますが「Movable Type」等のその他のCMSでも同様だと思われます。
CMSで使うリンク、画像等のディレクトリ表記で関数が使えない場合はサイトルート相対パス表記にするといいでしょう。
アドセンス広告メイン
関連記事
-
-
iPhoneからTwitpicに文字化けさせずに画像を送信する方法5つ
1年以上前の記事です。内容が古い可能性があります。ツイッター本アカウントではFl …
-
-
.htaccessで完全移転(リダイレクト)
1年以上前の記事です。内容が古い可能性があります。ちょっとした勘違いで某社Web …
-
-
「信玄餅」を楽しもう。色んな食べ方を公式動画で紹介中
1年以上前の記事です。内容が古い可能性があります。信玄餅って知ってます? 殆どの …
-
-
営業の喋り方を真似て営業に強くなろう
1年以上前の記事です。内容が古い可能性があります。僕の一番の弱点は「営業力」だと …
-
-
Photoshop CC(2014)で「◯◯ツールを使用できません。プログラムエラーです。」が出た時の対処法
1年以上前の記事です。内容が古い可能性があります。知り合いのデザイナーさんのパソ …
-
-
熊谷駅、上尾駅等から池袋駅、新宿駅、渋谷駅までの定期券で途中下車できる駅を増やす方法
1年以上前の記事です。内容が古い可能性があります。これ、知っておくと途中下車でき …
-
-
直帰率と離脱率の違い
1年以上前の記事です。内容が古い可能性があります。Google Analytic …
-
-
GREE(グリー)を退会する方法【スマートフォン編】#1
1年以上前の記事です。内容が古い可能性があります。#1 | #2 | #3 せっ …
-
-
解約した「iPhone 3GS」を「iOS 6」にアップデートした
1年以上前の記事です。内容が古い可能性があります。当初は3GSだし、アップデート …
-
-
Google Chromeでページランクを確認する方法(最新版)
1年以上前の記事です。内容が古い可能性があります。以前紹介したGoogle Ch …







