
ふと疑問に思ったことがあるので、ご存知の方がいらっしゃいましたら教えてください。
リンクタグ(や画像タグ)での属性にファイルパスを書く方法として、
href="./hello/test.html"
href="hello/test.html"
の二通りがありますよね?でもこれってどうして「どちらでもOK」になってしまったのでしょうか?
あるいはどちらの方が好ましいというのはありますか?
単純に考えれば短い(ちょっとでもバイト数が少ない)方が良い気もしますが、
でも後者がもしも省略形だとすれば、省略することは一般的にシステムが
一つ余計なステップを踏んで判断している可能性もあると思うので、
必ずしも良いことではない気がしますし・・・。
この辺りの裏事情(?)やどちらがより好ましいかなど、
ご存知の方がおられましたらぜひ教えてください。m(_ _)m
No.2ベストアンサー
- 回答日時:
RFC 3986 の 4.2 節に書かれています。
例えば、"tell:me" のような場合、これがスキーム tell でパス me からなる絶対 URI なのか、それとも tell:me という 1 個の相対 URI(相対パス)であるのか、判別できません。この場合、"./tell:me" とすれば、確実に相対パスであることが分かります。
他にも、"p/.././.././../q" のようなパスも正しい URI です。これは "../../q" と同義です。プログラムで URI を出力するとき、諸般の事情から余計なドットを取り除いた形にすることが難しく、とにかくつなげてしまえ、という場合があります。そんなときでも、一応は正しい場所を示すことができます。
参考URL:http://www.studyinghttp.net/cgi-bin/rfc.cgi?3986 …
この回答への補足
あ、何度も読み返して、少し分かってきました。(分かってないかもしれませんが・・・(^^; )
>コロン文字を含む path のセグメント (例えば、"this:that") は、
>それがスキーム名と間違えられるだろうから、相対パス参照の最初のセグメントとしては使用できない。
>そのようなセグメントは、相対パス参照を作るためには、
>ドットセグメントによって先行されなければならない (例えば、"./this:that")。
コロン文字を含む path のセグメント、というのを使ったことがないので、関係ないのかな、
と勝手に思ってしまいましたが、この記述を読むと
コロン文字を含まないパスでも"./"の方が何となく正しいあるいは好ましいものという印象を受けました。
> 確実に相対パスであることが分かります。
のようなお言葉がとても耳に心地良い(?!)です。
ありがとうございました!!
とても詳しいページのご紹介ありがとうございました!
専門用語が多く、難しくてちょっと理解できなかったのですが、
こういうのをご紹介いただきたかったのでとてもうれしかったです。
本題とは違いますが、URIが正しいということも学べました。
ありがとうございました!
No.3
- 回答日時:
すくなくとも
href="./hello/test.html"
href="hello/test.html"
はシステムとは関係ありません。
ユーザーエージェントが、この文字列を読み取って解釈した時点でいずれも、そのファイルが
http:hoge.com/abc/index.html
として取得したものでしたら、ブラウザはサーバーhoge.comに対して、HTTPプロトコルで
/abc/hello/test.html
を要求します。
ブラウザが混乱しない限り、まったく問題ありません。というか、ブラウザは混乱しないでしょう。
ただし、
/abc/hello/index.html
/abc/hello/
/abc/hello
についは、同じtest.htmlが表示されるように設定してあっも、サーバーへの負荷は異なります。
お返事をいただき、ありがとうございます♪
なるほど!「./」が付いているものも付いていないものも同じというのは、ブラウザが判断して、/から始まる絶対パスに変換して、サーバーにリクエストを送ってくれているんですね。質問の際、システムと書いてみましたが、どこがこれをやっているのだろう?と思っていたので、スッキリしました☆
実はこの質問のきっかけをお話させていただくと、私自身はWebページの作成はオーサリングソフトを一切使わずにやっていて、個人的には、href="./hello/test.html" の方が何となく明示的な感じがして好きなので、いつもそうしているのですが、先日友人のページ作りのお手伝いをしていて、その人のホームページビルダーがファイルの保存時に、オートコレクトよろしくこれ(./)を削除してしまうということを知り、「ほへ?何で?」と思い、興味を持ったのがきっかけでした。
そして、ORUKA1951さんも例に挙げて下さっていた、
/abc/hello/ → /abc/hello/index.html のような、裏では1つ余分なステップを踏んでいるケース
(ごくごくわずかでもサーバーへの負荷が異なるケース)をイメージしながら質問させていただきました。
どうして2通りの書き方が生まれてしまったのかな~?
あるいはどちらが本当は正しいとかを規定しているものがどこかに存在するのかなぁ~?
という私の素朴な疑問は、残念ながら疑問のままですが、仕組みが一つ分かって勉強になりました。
お付き合いいただき、本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- ドライブ・ストレージ HDDのチェック方法 6 2022/05/04 09:49
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- 訴訟・裁判 離婚訴訟で本人訴訟は裁判官の心情で不利になるか? 2 2022/07/31 15:08
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フリー素材(屋内サイン)のサ...
-
URLバーに日本語を表示させたい
-
URLのリダイレクトに関する質問...
-
大和ネクスト銀行の銀行コード
-
Yomi-Searchをhtmlで出力?
-
proftpdで困ってます。
-
フリーズする原因
-
SUN BBSの改造方法
-
wordの数式について 定積分を書...
-
プログラミングについての質問...
-
表示を一覧表形式にしたいので...
-
perlで書いたcgiでsqliteの使い...
-
MIDIのONとOFF。
-
MSPゴシックで、一番幅を取る文字
-
OBJECTタグで、PARAMを使用する...
-
チェックボックスの返す値
-
文字の表示色を変えたい
-
[HTML]プルダウンメニューの横...
-
選択した値の渡し方について(...
-
プルダウンメニューから他のペ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB初心者。小数点以下の表示で...
-
ブックマークからのアクセスを...
-
ローカルテストサーバーと本番...
-
Lightboxの表示位置に関して質...
-
proftpdで困ってます。
-
vsftpd+sslでアップロードできない
-
フリーズする原因
-
拡張子'html'と'htm'はどっちが...
-
□携帯とPCの切り替え可能なホー...
-
変数にアンパサンド
-
大分湯布院の観光地とおみやげ
-
htmlファイルが表示できません
-
IEで「file://」プロトコルが使...
-
URLのリダイレクトに関する質問...
-
SUN BBSの改造方法
-
掲示板(kentさんの所のsunbbs...
-
ラジオボタンが両方とも選択で...
-
wordの数式について 定積分を書...
-
FORMのselectの選択肢を最初か...
-
「value」に2つの値をセットす...
おすすめ情報