• ベストアンサー

URLは絶対パス、相対パス、ルート相対パス

WEBサイトを作成する上で、HTML内に使用するURLの記述方法で悩んでいます。 「絶対パス」、「相対パス」、「ルート相対パス」のどれがいいでしょうか。

  • kon77
  • お礼率97% (92/94)
  • HTML
  • 回答数5
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

あくまでHTMLだけで作った場合の質問なのか悩んでしまいましたが、追記します。 > 私も最初は相対パスで記述しており、途中でルート相対パスに変更してみたのですが、ローカルでは正> しくリンクしない事に気が付きました。 現在作成されているものがHTMLだけで構成されるならば、環境によっては、ルート相対パスは向かないと思います。 確認されている通り、開発環境と本番環境で異なる為です。 具体的に言うと、開発環境にWebサーバを立てていない場合。 開発環境におけるルート相対パスは、Webサーバを立ててこそ意味があります。 XAMPPでもApache単体でもいいから、インストールした上でDocumentRoot配下で開発を行っていれば、恐らく支障ありませんよ。 その環境を作らないと、作ったソースを丸々本番サーバでアップロードできません。 そういう意味では相対パスは、パス指定を簡素化できればWebサーバいらずですね。 プログラムを走らせる為、どの道Webサーバを立てないと動かせないようなサイトなら、まぁどっちでも好みの問題で、という次元が少なからずあると思います。 どちらでも走りますので。 ルート相対パスも相対パスも、参照するパスがやたら長ったらしいと煩わしい。 ミラーサイトが作成されるという懸念については、クライアントに全ソースをダウンロードしている以上、防ぎようがありません。 簡単だろうが難しかろうが、サイトのコピーは不可能ではないと考えていいです。 つまり、考えるだけ無駄です。 コピーされるのが嫌ならそもそもネット上に公開しない、特定の人物やドメインにのみ許可するなどの対応となるでしょう。 考えるのは、コピーを防ぐ方法よりは、コピーされた後の対応になると思います。 しかしそれも、動的ページ(PHPやらJavaやら使って)なら、クライアントに見えるのは描画が完了したページだけですから、丸ごとクローンというわけにはいかないでしょうね。

kon77
質問者

お礼

再度、ご回答ありがとうございます。 ご回答で気付かされたのですが、おっしゃる通り、考えてみれば、ローカルで仮のWEBサーバを立ててしまえばいいのですね。その発想は無かったです。 「XAMPP」というのは初めて知りました。こういうものがあったのですね。大変参考になりました。今度インストールして試してみようと思います。 つまり、どのようにパスを書くべきかは、テスト環境や、使用する技術等によるのでしょうね。なるべく管理しやすい方法を考えたいと思います。 ミラーサイトにつきましては、考えるだけ無駄なのですね。もしコピーされる事があったら、その時考えたいと思います。動的ページも将来的に作れたらいいなと思います。 大変分かりやすかったです。ありがとうございました。

kon77
質問者

補足

皆さん、大変参考になりました。本当にありがとうございました。

その他の回答 (4)

回答No.4

プロジェクト内ではルート相対パスを使ってます。 相対パスはいっぱい戻る必要があると『../』」が増えすぎて不明瞭。 絶対パスは環境が変わると対応が面倒。 ルート相対パスは、必要な部分(webrootやフレームワーク固有のフロントコントローラなど)から、 実際のディレクトリと一致するので分かり易い。

kon77
質問者

お礼

ご回答、ありがとうございます。 プロとしてサイト作成されている方なのですね。ルート相対パスを使われているのですね。大変参考になりました。 確かに相対パスは、何個か上位の階層に上がる時は、「../」が連続する場合がありますね。 自分は素人で、それほど知識が無いので、あまり難しい事は出来ませんが、将来的にはPHPやデータベースを使ってやった方が良いのでしょうね。もちろん、その場合もパスの形式は自分で考える必要はあるのでしょうけど。 本当は、既存のCMS等を使って記事を書くのが、パス等を考えず済むので楽なんでしょうが、それをやってしまうと、100%自分の思い通りのサイトにはならないでしょうし、カスタマイズするにも新しい知識を勉強する時間が必要になるでしょうね。 大変参考になりました。ありがとうございました。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

私は相対パス派ですね。 サーバの引っ越しで気を使わなくていいし、 テスト環境も全く気にしなくていいので融通性が高いです。 ルート相対パスを使いたくなったら、全体的なディレクトリ構造の見直しをしたいです。 事実、私の設計は画像でも1つのディレクトリにまとめるのではなく、各分野ごとのディレクトリに画像ディレクトリを作り、遠く離れたリンクを避けるようにしていました。 絶対パスは有り得ません。 iTunesが曲の認識を絶対パスで行っていますが、 iTunesのその部分の設計者とそれを容認した管理者はアホだと信じて疑いません。 これで世界中でどれだけのユーザが頭を痛めていることやら、です。

kon77
質問者

お礼

ご回答、ありがとうございます。 相対パス派なのですね。確かにテスト環境という点では、相対パスが良いかも知れませんね。 遠く離れたリンクを避けるという点でも、相対パスは良いかも知れませんね。パスの長さも考慮して行こうと思います。 私も最初は相対パスで記述しており、途中でルート相対パスに変更してみたのですが、ローカルでは正しくリンクしない事に気が付きました。 私が普段サイトを作成する場合は、ページ数が少なくて、一度作ったらあまり更新しないサイトを作る場合、手打ちでソース書いて、パスの形式にもこだわらず作ります。後からリンクの書き方を変更するのも、さほど大変ではありません。 しかし、今回はバッチ処理を使い、CMSほどちゃんとしたものではありませんが、新しく記事を書くと、そのHTMLを指定した場所に保存し、パスが通るように置換するという処理をしたいので、このシステムを作っている今、リンクの記述方法も決めたいのです。後から変更するのは手間が掛かるからです。 現状の作りかけのシステムでは、ルート相対パスの使用を想定し、一旦ルート階層まで上がって、そこからのルート相対パスを記述するという方式を取っています。ローカルでもテスト出来るようにする為です。 「/aaa/bbb/1.html」から 「/aaa/bbb/2.html」へのリンクなら、 「../../aaa/bbb/2.html」という風に記述されるようにしています。 これをアップロードする時は、「../」が連続する部分は「/」に置換し、 「/aaa/bbb/2.html」になるようにしています。 この方法だと、アップロードする際に簡単に「絶対パス」と、「ルート相対パス」に置換できます。「相対パス」に置換するのは難しいですが。 一つ心配しているのは、ミラーサイトを作られる危険性についてですが、相対パスや、ルート相対パスは、簡単にミラーサイトを作られてしまいますが、絶対パスだと、そのままコピーしただけではミラーサイトにはなりません。 しかし、HTML内の絶対パスを、違うドメインに変更したり、ルート相対パスに置換するのは、正規表現を使った置換処理を行えば簡単に出来てしまいますし、意味がない気もします。又、ミラーサイト作成用のツールもあると思います。 ただ、余程魅力的なサイトを作らないと、ミラーサイトを作られる心配などしなくて良いのかも知れませんが。 iTunesは使っていないので分からないのですが、現在そのような状況になっているのですね。やはりそれも、一度作ってしまったシステムの仕様を変更する難しさがあるのでしょうか。分かりませんが。 ご回答、ありがとうございました。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

ドメインの変更やサイト移転に伴うサーバーの変更などでアドレスが変わる場合は絶対パスは避けるほうがよいかと。 外部サイトを参照する場合は絶対パスを使用するしかありませんが。 自分の場合はサイト内を跨るリンクはルート相対パスを利用し、 CGIなど特定ディレクトリ以下でのみやり取りを行うパスでは相対パスを使用しています。

kon77
質問者

お礼

ご回答、ありがとうございます。 やはり、状況によって使い分けるということでしょうか。 「特定ディレクトリ以下でのみやり取りを行うパスでは、相対パスを使用する」というのは大変参考になりました。 その状況に適したパスを考えて使って行こうかと思います。ありがとうございました。

  • t_ohta
  • ベストアンサー率38% (5078/13270)
回答No.1

それぞれに長所短所があるのでケースバイケースです。 システム全体の構成に応じて使い分ける必要があると思います。

kon77
質問者

お礼

ご回答、ありがとうございます。 なるほど、ケースバイケースですか。自分の作りたいサイトの構成を見つめ直したいと思います。ありがとうございました。

関連するQ&A

  • 相対パスを絶対パスに。

    Web巡回ロボットのようなモノを作ろうと思っています。 あるURLにアクセスし、そのソースからリンクされているURLを拾って・・・・を繰り返します。 そこで、相対パスを絶対パスに簡単に変換する方法はありますか? ご教授お願いします。

    • ベストアンサー
    • Java
  • 絶対パス 相対パス SSL https

    無知な者ですので質問も稚拙かもわかりませんが よろしくお願いいたします。 現在、WEBサイトを制作する際に SSLで暗号化されたページにリンクする場合、 相対パスでリンクするとURLが「https://~」ではなく 「http://~」となってしまう為、 「https://~」と絶対パスでリンクしています。 これを相対パスでリンクさせる方法がありますでしょうか? もしございましたら、お手数ですがお教え願えますでしょうか? よろしくお願いいたします。

  • 絶対パスから相対パスへ

    HPビルダーを使ってHPを作っています。 この度、サーバの方にFTPを使いサイトを 転送したのですが、一部サイト内からサイト内に 飛ぶ際にURLが絶対指定になっていて飛ぶ事が できませんでした。そこで絶対パスから相対パス への変更方法が載っているページをIBMのページで 見つけたのですが、意味が分かりませんでした。 この際、幾つかの絶対パスを相対パスに変更する 作業は一つ一つしなければならないのですか? それと変更する際の具体的手順を詳しく教えて いただきたいです。

  • サイトルート相対パスと絶対パスのメリット・デメリット

    サイトルート相対パスと絶対パスのメリット・デメリット htmlでサイト内リンクを指定する際、 /test/test.html というサイトルート相対パスで指定する場合と、 http://example.com/test/test.html という絶対パスで指定する場合、 それぞれのメリット・デメリットはどういったものがあるでしょうか? ドメインは絶対に変更されないという前提の場合です。 絶対パスの方が重くなるなどのデメリットはありますか?

  • 絶対パス(ルート相対パス)での指定でのメリットとは?

    最近大手のwebサイトのソースを見ると、ほとんど絶対パス(/からはじまるルート相対パス)でかかれていることが多い気がします。 これってなにか理由があるのでしょうか?? 色々調べてみましたが中々それといったものがなく、自分の考えとしては、ページ共通の画像やcssファイルなどは確かにそれだと便利で効率はいいだろうなぁ、という感じですが、はたしてそれだけなのか?と思ってしまいます。 よくソースをみるサイトは、apple、sony,macromediaなどです。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • 相対パスか絶対パスって何?

    CGIサイト内検索を設置したいと思っていますが、相対パスか絶対パスって言う言葉が出てきます。 (例)path/にはsearch.cgiまでの相対パスか絶対パスが入ります。 相対パス・絶対パスとは何でしょう? サーバーにあるホームディレクトリのフルパスとは違うのですか? 教えてくださいお願いします。

    • 締切済み
    • CGI
  • Dreamweaverの絶対パス表記

    DreamweaverMXをwindows2000環境で使用していますが、 通常、画像のパスは相対パスかルートパスになりますが、 画像を別サーバーにおき、読み込んで使いたいため、 絶対パスで記述したいと思っています。 DreamweaverMXでパスを絶対パスで記述する設定はできないでしょうか。 サイト定義のHTTP欄にはアップロードするサーバーのアドレスを記述しています(画像はこのサーバーとは別のサーバーにアップする) HTMLのメルマガなどにも絶対パスでの記述が必要なので、この機能を使用したいと思っています。 ご存知の方がいらっしゃいましたら教えてください。

  • 相対パスと絶対パス

    こんにちは。 WEBページを作っている者です。 サイト内リンクのパスについてなのですが、 相対パスと絶対パス。 どちらのほうがよいのでしょうか? 今は相対パスで行っているのですが、 時々ドコに飛んでいるのかわからなくなることがあります(笑) やはり、絶対パスでリンクはするべきなのでしょうか? お仕事などでWEBページを作っておられる方は、どちらを好んで使われるのでしょうか? (ドメインは、今後変更する可能性が非常に高いです。というのも、今はフリーのサーバースペース(FC)を使っているので…独自ドメインをじきに取得したいなと…) (ドメイン変更の際も)一括置換ソフトなどを使用して変更すればそんなにたいした問題ではないのでしょうか? また、一括置換ソフト(フリー)についてこちらにも回答いただけるとうれしいです 。 http://okwave.jp/qa/q7522915.html ↑私の質問です。 お願いいたします。

    • ベストアンサー
    • CSS
  • HTML:相対パスと絶対パスについて

    HTMLには、相対パスと絶対パスがありますが、全て絶対パスにした方が分かりやすいと思うのですが、使い分けをした方がいいのでしょうか? 回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • 相対パスか絶対パス??

    CGIサイト内検索を設置したいと思っていますが、相対パスか絶対パスって言う言葉が出てきます。 (例)path/にはsearch.cgiまでの相対パスか絶対パスが入ります。 相対パス・絶対パスとは何でしょう? サーバーにあるホームディレクトリのフルパスとは違うのですか? もしフルパスと同じだと言った場合・・・ 「path/にはsearch.cgiまでの相対パスか絶対パスが入ります」ではフルパスが/home/hatenaだった場合は 下記にはどのようにはいるのでしょうか? (例)<form method="GET" action="path/search.cgi"> 再投稿ですが、もうチョット具体的に書いてみました 教えてくださいお願いします。

    • 締切済み
    • CGI

専門家に質問してみよう