今日、Javascript で相対パスを使用した経験に驚きました。状況を次のように要約しました。
次のようなディレクトリ構造があるとします。
app/
|
+--app.html
+--js/
|
+--app.js
+--data.json
私app.html
がすることはすべて実行することですjs/app.js
<!DOCTYPE html>
<title>app.html</title>
<body>
<script src=js/app.js></script>
</body>
app.js
JSON ファイルをロードし、 の先頭に貼り付けますbody
:
// js/app.js
fetch('js/data.json') // <-- this path surprises me
.then(response => response.json())
.then(data => app.data = data)
データは有効な JSON であり、単なる文字列です。
"Hello World"
これはかなり最小限fetch
の. とが同じディレクトリ ( )にあるため、このパスが機能すると思います。fetch
app.html
app.js
data.json
app.js
js/
fetch('data.json') // nope
これが事実である理由についての説明はありますか?