質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

608閲覧

【Html】上位階層へのリンクの「../」を省略しても問題なく動くのはなぜか?

kotsubu

総合スコア13

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/11/24 07:25

教えていただきたいこと

htmlファイルのソース内にどう考えても上位階層へのリンクの「../」が省略されているものがありました。
(とあるサイトをコーディング模写の練習中)
該当サイトはブラウザ上で問題なく表示されていました。
技術的に可能なのでしょうか?
可能であれば仕組みを教えていただきたいです。
よろしくお願いします。

該当のソースコード

<!DOCTYPE html> <head> <link rel="stylesheet" href="/A/css/style.css" type="text/css"/> </head> <body> <img src="imgs/img.jpg"> </body> </html>

ファイルの階層

public_html
├ A
│ └css
├ B
│ └index.html
│   └ imgs

疑問点

本来「../」と記入しないと読み込めないと思うのですが、
どういう仕組みで問題なく読み込んでいるのでしょうか??

■質問のコード

<link rel="stylesheet" href="/A/css/style.css" type="text/css"/> ↓ ■本来 <link rel="stylesheet" href="../A/css/style.css" type="text/css"/>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下、otnさんのご指摘を加えて、修正しております。
ご指摘ありがとうございました。

「URL(URI)」と「パス」の混同があるようです。


HTML中のパス指定URL指定は以下の方法があります。

絶対URL
URL(「scheme://server(domain)/path/resource」の形式)をすべて記述する。

scheme(スキーマ):どうファイルにアクセスするか
server(サーバ): __resource__のあるコンピュータの名前
path(パス): ターゲットとなる__resource__までのディレクトリの連なり。__resource__がなければ、最後のディレクトリがターゲットになる。
resource(リソース): ターゲットになるファイルその他

HTML

1<img src="http://sample.com/imgs/img.jpg"> 2<img src="https://sample.com/imgs/img.jpg">

相対URL
URLのうち「path」と、必要に応じて「resource」の部分を記述する。
以下のものがある。

俗に「相対パス」と呼ばれる相対URL
そのHTMLからの相対位置に一致する。

HTML

1<img src="imgs/img.jpg"> 2<img src="./imgs/img.jpg"> 3<img src="../imgs/img.jpg">

俗に「絶対パス」「ルートパス」「ルート相対パス」と呼ばれる相対URL
URL(scheme://server/path/resource)のうち、「path」「resource」部分すべてを記述する。
そのサイトのルートディレクトリからの相対位置に一致する。

HTML

1<img src="/imgs/img.jpg">

その他
絶対URLは「scheme」を含んだ形式なので、
定義上、それを省略した「//server(domain)/path/resource」は相対URLに該当する。
HTMLを書くことだけを考えるなら、この書式は、「httpかhttpsか確定できないけど、ドメインからURL書きたい」ときに使えばいいと思います。

参考資料

https://docs.microsoft.com/en-us/sql/ado/guide/data/absolute-and-relative-urls?view=sql-server-2017

投稿2018/11/24 07:40

編集2018/11/24 14:10
NozomuIkuta

総合スコア1260

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kotsubu

2018/11/24 11:50

ありがとうございます! とても初歩的な事だったのですね…。 もっと勉強を精進いたします。
NozomuIkuta

2018/11/24 12:04

解決したようでよかったです。 基礎ほど大事なので、特に気にせずバンバン質問したり調べた方がいいですよ。 知ったつもりわかったつもりでやる方が、危険です。
otn

2018/11/24 13:03

「URL(URI)」と「パス」の混同があるようです。 絶対URL http://sample.com/imgs/img.jpg 絶対パス /imgs/img.jpg 相対URL //sample.com/imgs/img.jpg、/imgs/img.jpg、imgs/img.jpg、../imgs/img.jpg など 相対パス imgs/img.jpg、../imgs/img.jpg など
NozomuIkuta

2018/11/24 13:44 編集

> otnさん ご指摘ありがとうございます。 URLの形式は「protocol://domain/path」だと思うので、一部混同しておりました。 確認したいのですが、 「../imgs/img.jpg」は、相対URL、かつ、相対パスということですか? (追記) > otnさん 改めて調べ直してドキュメント見つけました。 ありがとうございます。 https://docs.microsoft.com/en-us/sql/ado/guide/data/absolute-and-relative-urls?view=sql-server-2017
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問