誕生日にもらった意外なもの

こんにちは。


WEBページを作っている者です。

サイト内リンクのパスについてなのですが、
相対パスと絶対パス。
どちらのほうがよいのでしょうか?

今は相対パスで行っているのですが、
時々ドコに飛んでいるのかわからなくなることがあります(笑)

やはり、絶対パスでリンクはするべきなのでしょうか?

お仕事などでWEBページを作っておられる方は、どちらを好んで使われるのでしょうか?

(ドメインは、今後変更する可能性が非常に高いです。というのも、今はフリーのサーバースペース(FC)を使っているので…独自ドメインをじきに取得したいなと…)

(ドメイン変更の際も)一括置換ソフトなどを使用して変更すればそんなにたいした問題ではないのでしょうか?


また、一括置換ソフト(フリー)についてこちらにも回答いただけるとうれしいです 。
http://oshiete.goo.ne.jp/qa/7522915.html
↑私の質問です。

お願いいたします。

A 回答 (7件)

><a href="/index.html">という風に書けばいいのでしょうか?



>しかし、このように書くと、bbbディレクトリの中のindex.htmlファイルにリンクしてしまうと思うのですが…

いいえ。同じ階層のファイルにリンクするときは、
href="index.html"
と先頭にスラッシュを書きません。(これは相対パス)
先頭がスラッシュだと、ホストのトップレベルを意味します。先頭がスラッシュなら絶対パスです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほど。そのような違いがあったのですね。

これからまとめて直して行こうと思います。

お礼日時:2012/06/15 18:32

No2,No4です。



>ドメインが変わったら、その部分だけ一括置換ソフトで書き換えればすむことですよね!!

もしかして、
「絶対パスとは、href="http://example.com/" のようなもの」と思っていますか?

href="/" と書いておけばドメインには無関係になります。

どれも絶対パスです。
(1) href="http://example.com/top.html" (スキームとホスト名付)
http/httpsが変わったり、ホストが変わったりしたら書き換えが必要
(2) href="//example.com/top.html" (ホスト名付)
http/httpsが変わっても書き換え不要、ホストが変わったりしたら書き換えが必要
(3) href="/top.html" (パス名のみ)
http/httpsが変わったり、ホストが変わったりしても書き換え不要
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ありません。

絶対パスは、サーバードメインも含むものと思っておりました。。。

たとえば、
http://aaa.jp/bbb/ccc.htmlファイルから、
http://aaa.jp/index.htmlにリンクを張る場合、
<a href="/index.html">という風に書けばいいのでしょうか?

しかし、このように書くと、bbbディレクトリの中のindex.htmlファイルにリンクしてしまうと思うのですが…
いつも私は、<a href="../index.html">と書いています…(←コレは相対パスですよね)

お礼日時:2012/06/15 05:44

>今回の場合、index.htmlというファイルがたくさんできてきて、どのインデックスに飛んでいるのかがわからなくなってしまうんです…



 これは使用しているアプリケーションのマニュアルを見てください。ウィンドウのタイトルバーにファイルパスを表示させれば済むのではないかと・・。
(添付画像はEmEditor・・)

 ローカルサーバーとは、たとえばapacheを自分のパソコンにインストールして、
http://local.host/index.html
 で、fille:\\\D:\homepage\html3\index.htmlファイルにアクセスできるようにするということです。

 hrefやsrcの値を読み取って、それがどのファイルであるか判断するのはブラウザの役割です。

 現在使用しているファイルが、
http://local.host/books/index.html
 であれば、uriの値が、/images/photo/01.jpgであれば、ブラウザはそのファイルが
http://local.host/images/photo/01.jpgであると判断して、local.hostに対して、/images/photo/01.jpgを要求します。
 もし使用しているファイルが
fille:\\\D:\homepage\html3\index.html
 であれば、自身のファイルサーバーに対して、
fille:\\\D:\images\photo\01.jpg
 を要求します。そんなのありませんから・・
 相対パスで、../images/photo/01.jpgでしたら
fille:\\\D:\homepage\images\photo\01.jpg
 を要求します。

 絶対パスと、相対パスの不整合が生じますから、ローカルサーバーがないうちは、相対パスで記述するしかないでしょう。

 なお、firefoxのアドオンのserver Swicherを使用すると、ファイルサーバー(エクスプローラ)、ローカルサーバー(あれば)、リモートサーバーを切り替えてテストはできます。
「相対パスと絶対パス」の回答画像5
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ローカルサーバーの意味を理解しました。
実は、ローカルサーバーも立てています。(ルーターのポート転送も設定して、
外部にも公開はしていますが、ドメインを取得していないのでIPアドレスそのままですが(笑)

>タイトルバーに(略)
というよりも、ソースを書いている際に、あのindex.htmlに飛びたいな」と思ったときに、「あれ?『../』はいくつ??」って感じに・・・
今いるのがどのインデックスなのかはあまり迷わないんですけれど

でも、ビジュアルサイトビューではわからなくなるので、ビルダーのマニュアルを読んでみたいと思います。

IEでは、file://○○○/という風に、ディレクトリ名で終わらせると、エクスプローラーでそのフォルダを開いてしまうんですよね(笑)

お礼日時:2012/06/10 12:22

No2です。



>また、TOPページへのリンクも相対パスになっています。

そうすると、そのページを他の階層に移動させたとき(一段下にディレクトリを付くって下ろすとか)に、書き換えが必要ですよね。
サイト全体で共有するファイル群についても同じことが言えます。
    • good
    • 0
この回答へのお礼

>そうすると、そのページを他の階層に移動させたとき(一段下にディレクトリを付くって下ろすとか)に、書き換えが必要ですよね。

そうなんです…
一回それでいやな目にあって(笑)
たぶん数ページでそんな事言っちゃいけないんでしょうけど…
よく、ネットで「100ページのリンクすべて書き換える羽目になりました。」
という方を見かけますが、それは避けたいな…と…

これからTOPページなどは、絶対パスで行うことにします。
ドメインが変わったら、その部分だけ一括置換ソフトで書き換えればすむことですよね!!

お礼日時:2012/06/10 07:43

webの場合ホストに用意されている『パブリック』フォルダに作成したデータはアップされます。


作成時に『index.html』を基準にリンクを張りますので、相対アドレスです。

サイト内から外部データにアクセスする場合は『絶対アドレス』ですね。
ドメインを移行する時は作成したフォルダの中身をアップすればOKです。

絶対アドレスー>”http://okwave.jp/”,HD/image/1.jpg
相対アドレスー>”././file.html"
この場合一番左が『index.html』の位置で、『file.htm』はXXXフォルダ内に存在

index.htmlーーーXXXフォルダーーーfile.htm

*PCで作成し、アップして動作していない場合は『絶対アドレス』を使っている時が有る。
(フォルダを作成せずに行っている)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私としては、相対パスと絶対パスの違いは理解しているつもりです。

しかし、どちらを使うのがWEBページとして最適なのかどうかがわかりません…


きっと、人によってすべて相対パスで行う人と、
絶対パスで行う人がいるのかと思います。

私としては、
正直どちらがよいのかわかりません。
かといって、自分のサイト内でリンクするのに両方を混ぜるのはちょっと抵抗があります…

今は、HPビルダーを使っています。
ビジュアルサイトビューでは、相対パスでなければ機能しない気がするので、
相対パスにしようかと思ったり、
各ファイルへのアドレスが絶対パスを使用すれば、どのディレクトリにあるHTMLファイルでも同じものが使えるので、ヘッダーなどがまったく同じものを使いまわせるなぁ~と…

お礼日時:2012/06/09 20:29

ひとかたまりのファイルの中で他のファイルを参照するなら相対パス。


サイトの中で共通で使う画像やcss、JavaScriptファイルなどを参照するなら絶対パス。
あと、当然ですが、サイトの中で固定アドレス的に使う物は絶対パス。TOPページを参照する href="/" とか href="/copyright.html" とか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今のところ、CSSやジャバスクリプト、画像ファイルなどもすべて相対パスで行っています。
また、TOPページへのリンクも相対パスになっています。

このようなものは絶対パスのほうがいいのでしょうか?

お礼日時:2012/06/09 20:25

 相対パスでよいです。

絶対パスを利用するときはローカルサーバーがないと現実的ではありません。
 たとえば、<img src="/images/photo/viewFromsea.jpg" ****>では、表示されませんね。

>時々ドコに飛んでいるのかわからなくなることがあります
 これは、ディレクトリ構成がまずい・・
 サイトリンクの構成などを伝えるにはどうすれば? - HTML - 教えて!goo ( http://oshiete.goo.ne.jp/qa/7514366.html#a1 )のように、きちんと系統だって作成していれば迷わないはずです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ローカルサーバー…とは…どういうことでしょうか…?

サイトのディレクトリ構成ですが、参考URLのとおりそのままに作っています。
(自分は、ファイルを整理するのが好きなタイプのようで…なので、自動で保存するソフトとかってすごく嫌いなんです(笑)撮りためた写真とかも全部手動でフォルダわけして…という感じに)

ただ、今回の場合、index.htmlというファイルがたくさんできてきて、どのインデックスに飛んでいるのかがわからなくなってしまうんです…

お礼日時:2012/06/09 20:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報