人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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制作ソフトがあれば教えて下さい。

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

●質問者: gaziro2000
●カテゴリ:インターネット ウェブ制作
✍キーワード:HTML RFC URL Web XXXX
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● 田中T
●30ポイント

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

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

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

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

4.思いつきません。

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

◎質問者からの返答

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

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


2 ● b-wind
●30ポイント

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.自分は特に知りません。


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

◎質問者からの返答

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

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

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

ありがとうございます。


3 ● 牛乳先生(tukihatu)
●10ポイント

>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やサイト内では、表記は統一するべきかと思いますので、最初の段階でどちらを使う?とか相談して決められている場合が多いです。

◎質問者からの返答

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

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

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

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


4 ● tezcello
●15ポイント

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

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

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


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

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

◎質問者からの返答

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

ありがとうございます!


5 ● toohigh
●15ポイント

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

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

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

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


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

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

◎質問者からの返答

何という深読み!

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ