絶対パスと相対パスはどちらが良い?

html

こんにちは。おもてうらです。

今回は、Webサイトを作成する際に微妙に悩む、「絶対パスと相対パス」の使い分けについて、私見を述べたいと思います。

自分でサーバにアップロードしない人からするとあまり関係のない話ですが、一応個人的なメモとして残しておこうと思います。

絶対パスと相対パスとは?

まず、絶対パスと相対パスについて簡単に説明しておきます。詳しく知りたい方は、「絶対パス 相対パス – Google 検索」で調べてみてください。

絶対パス

絶対パスとは、http://から始まるアドレス(URL)を使ってファイルの場所を指定する方法です。

他のサイトやブログにリンクを張る際には、この絶対パスを利用します。

例)https://omoteura.net/index.html

相対パス

相対パスとは、基準となるファイルから見たときのアドレス(階層構造)を使ってファイルの場所を指定する方法です。

例えば、同じフォルダ(ディレクトリ)にindex.htmlprofile.htmlというファイルがあったとして、profile.htmlからindexhtmlへリンクを張る場合、ファイル名を指定するだけでリンクを張ることが出来ます。

例)index.html

※相対パスではファイル同士が同じサーバ内に存在する必要があるので、他サイトへのリンクを張ることはできません。
※この他にルート相対URLという指定方法がありますが、ここでは割愛します。

メリット・デメリット

それぞれのメリット・デメリットをまとめると以下の通りです。

絶対パス

  • 記述する文字数が多い
  • ローカル環境でのテストができない
  • リンク切れが起こりづらい
  • コピーされづらい

相対パス

  • 記述する文字数が少ない
  • ローカル環境でのテストができる
  • リンク切れが起こりやすい
  • コピーされやすい

1つ目の文字数については、見たまんまです。絶対パスの場合、http://から記述しなければいけないので、文字数が多くなり面倒臭いです。この点、相対パスであれば、かなり文字数を減らすことができるため、記述も楽ですし、ファイルサイズも抑えることができます。

2つ目のローカル環境でのテストについてですが、絶対パスの場合、http://から記述するため、リンク先のファイルがサーバにアップロードしてある(インターネット上に公開してある)必要があります。これだと、例えばローカル環境でCSSファイルをいじりながら、表示を逐一確認するといったことが出来ないため、かなり不便になります。

3つ目のリンク切れは微妙な線ですが、絶対パスで指定しておけば、リンク先のファイルが移動しない限り、リンク切れを起こすことはありません。相対パスの場合、ファイルを移動すると階層がズレるので、意図せぬリンク切れが発生しやすくなります。(※とはいえ、絶対パスで指定しても、リンク先のファイルを移動してしまえばリンク切れは起こるので、あまり差は無いように感じます。)

4つ目のコピーについてですが、例えばサイトをファイル毎まるまる別サーバにアップロード(コピー)された場合、相対パスで指定していると問題無く表示が出来てしまいます。これに対して、絶対パスで指定していると、リンク先は自分のオリジナルサイトになっているので、リンク先を修正しない限りは自分のサイトへの誘導となるわけです。(※これもやりようはいくらでもあるので、効果は薄いと思います。)

どちらがいいの?

結局、どちらがいいの?というお話ですが、個人的には相対パスが良いと思っています。

記述する文字数が少ないことに加え、ローカル環境でテスト出来るというのが大きく、逆に絶対パス指定での面倒臭さが際立ちます。

前述したように、リンク切れやコピー対策についても、それほど差は無いと思うので、作業性を重視した方が良いというのが私の考えです。

一部で「絶対パスの方がSEOに強い」などと言われていますが、これに関しては正直関係が無いと考えています。

(※Googleとしては絶対パスを推奨しているようですが、これはリンク切れが起こりづらいという理由によるものと考えられます。つまりリンク切れを起こさなければどちらでも良いでしょう。)

参考:絶対URLと相対URLでSEO対策上の違いはありますか?[SEO HACKS]

 

最終的には各々の判断になりますが、特別なテスト環境を持たない個人においては、相対パス指定の方がメリットが大きいのではないでしょうか。

以上です。

参考:絶対パスと相対パスとルート相対パスのメリットデメリット(相対パス派)
参考:相対URLと絶対URLはどちらがSEOに強いのか?(絶対パス派)

コメント