HTMLのソースのパスの指定で"./xxxx"と書くのは正しい表記でしょうか?


私はエンジニアですが、最近デザイナが書いてくるHTMLのソース内に
<a href="./index.html">
<img src="./image/space.gif">
等という表記を最近すごくよく見ます。
カレントディレクトリを"./"で表したいのだと思いますが、これは記述として正しい表記なのでしょうか?

所詮相対パスなのに、わざわざ"./"を付ける理由がわかりません。

コマンドラインの環境で、あえて./を付けてカレントディレクトリのコマンドを指定するのは理解出来ます。
../が1つ上の階層なのは当然理解しています。

次の1~5の最低1つ以上に回答をお願いします。
1.上記は誤りで<a href="index.html"><img src="image/space.gif">が正しいのでしょうか?
2.これらの表記が正しい/正しくない理由が書かれているURLを教えて下さい。(RFCとか?)
3.あえて'./'を入れて得られるメリットは何でしょうか?
4.'./'を入れることによって発生する不具合の可能性はありませんか?
5.こういう表記のHTMLソースを出力するWEB制作ソフトがあれば教えて下さい。

# こういうのって、ググりづらいですよね。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/09/10 11:10:02
  • 終了:2008/09/10 13:22:02

回答(5件)

id:t-tanaka No.1

田中T回答回数7ベストアンサー獲得回数12008/09/10 11:30:17

ポイント30pt

1.どちらも正しい(許される)表記のようです。「./」付きの相対URLもRFCに例示されています。

2.相対URLをどのように解決すればいいかを定めたRFCはRFC 1808です。

  http://www.faqs.org/rfcs/rfc1808.html

3.上記RFCでは,コロンを含むオブジェクトを指定する場合「this:that」ではthisがプロトコルと解釈されてしまうため,「./this:that」とする例が示されています。

4.思いつきません。

5.すみません,しりません。

id:gaziro2000

回答ありがとうございます。RFC1808ですね。英語なので後で読んでみます。

3の部分が興味深いですね。あまりよく使うものではなさそうですが・・・

2008/09/10 11:38:21
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402008/09/10 11:30:45

ポイント30pt

1."./" が付いても正しい相対パスである。

2.HTML では RFC1808 に従え、とある

  Links in HTML documents (ja)

  で、その RFC1808 では 2 において "." と ".." は特殊な意味があるとは書かれているが、

禁止されていない。(この辺英語なんでちょっと自信なし)

また、2.2 において BNF による URL の定義があるが、ここでも "." の仕様は許可されている。

  An example HTML document

  これらから、「URLとして正しい」という結論が導かれる

3.カレントディレクトリのファイルであることを明示すること

(どの程度のメリットかはおくとして)

4.特に無いはず。普及しているブラウザはすべて対応しているはずだが、

マイナーなHTMLエディタで対応していないものがあるかもしれない。

ただ、その場合でもあくまでHTMLエディタのバグと考えるべき

5.自分は特に知りません。


個人的には ./ はつける派かな。そんなに深い意味は無いけど、あとで変更になったときに置換しやすかったり。

id:gaziro2000

> 個人的には ./ はつける派かな。

なるほど、そうですか・・・私は割と否定派でした。

やはり置換目的という思いもありましたか!

ありがとうございます。

2008/09/10 11:41:27
id:tukihatu No.3

牛乳先生(tukihatu)回答回数180ベストアンサー獲得回数322008/09/10 11:39:32

ポイント10pt

>1.上記は誤りで<a href="index.html"><img src="image/space.gif">が正しいのでしょうか?

>2.これらの表記が正しい/正しくない理由が書かれているURLを教えて下さい。(RFCとか?)

誤りではありません。どちらが正しいということもありません。

http://www.itproexpo.jp/article/COLUMN/20060328/233617/

ご存知の通り、実際には”./”という表記だけど、それを省略して書いているだけです。だから表記として正しくともあえて書く必要もありません。

>3.あえて'./'を入れて得られるメリットは何でしょうか?

>4.'./'を入れることによって発生する不具合の可能性はありませんか?

メリットはあんまりないですね、どちらが見る人にとって一発でわかるか、ということだと思います。

コマンドをたたいている人は”./”と書いてもわかりますけど、わからない人もいるかもしれないので、省略して書いたほうがいいと思いますが。

HTMLで不具合は発生しません。


あとは、同じHTMLやサイト内では、表記は統一するべきかと思いますので、最初の段階でどちらを使う?とか相談して決められている場合が多いです。

id:gaziro2000

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

HTML中のURL表記の件なので、参考に頂いたURL先のLinuxのファイルシステムの話は参考にはなりますが、この問題の根拠としては十分ではないと思います。

「統一するべき」はその通りですね。

今後はコーディングを依頼する際に"./"表記は避けて下さいとして依頼しようと思います。

2008/09/10 11:46:41
id:tezcello No.4

tezcello回答回数459ベストアンサー獲得回数692008/09/10 11:47:05

ポイント15pt

'./' が付いている表記は正しい表記方法であるはずです。

単に hoge と表記した場合は、'./' が省略されたものと見なしているだけでは?

その為に、省略された場合の検索パスを指定しているんじゃなかったでしょうか?


'./' を入れる事によるデメリットは特に無いでしょうが、URIとして、'./' が必要になる場合があるそうです。

http://www.7key.jp/rfc/2396/rfc2396_5.html#li31

id:gaziro2000

URIとしてですか。なるほど・・・・

ありがとうございます!

2008/09/10 13:19:49
id:toohigh No.5

toohigh回答回数291ベストアンサー獲得回数372008/09/10 13:08:58

ポイント15pt

他の方の回答と重複なさそうな、5. 関連です。あくまで推測ですが・・・

  • コンテンツ作成側のツールの仕様として、リンクを $Destdir/image.gif のような感じで出力するようになっているものは見たことがあります。

このケースで、絶対ディレクトリなリンクを作りたいときには $Destdir = "/hogehoge" 、相対リンクなら $Destdir = "." とかにしている

可能性はあるのではないでしょうか。

  • 例えば unix の find . -name '*.gif' な感じの実行結果などを元にしてページデザインを作るようなケースだと、find が ./image.gif の

ような形で結果出力するために、そういうリンク群が出来上がる、というのもあるかもしれません。


「デザイナが書いてくるHTML」とのことですので前者の方がよりあり得る気がします。後者は逆にエンジニアが作ってくる HTML でありそうな気がします。

http://q.hatena.ne.jp/ (すいません、手頃なリンクが思い当たりませんでした)

id:gaziro2000

何という深読み!

ありがとうございます。

2008/09/10 13:20:26
  • id:Knoa
    フォームの場合、ターゲットにaction="./"と書くのとaction=""と書くのでは違ってくる。
    カレントURLに?mode=adminなどの変数が付いている場合、後者のターゲットなら?mode=adminを受け継ぐことができる。

    ちと説明がキモイ言い回しになってすまん。
  • id:gaziro2000
    ん?ちとわからんです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません