46

今日、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.jsJSON ファイルをロードし、 の先頭に貼り付けます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の. とが同じディレクトリ ( )にあるため、このパスが機能すると思います。fetchapp.htmlapp.jsdata.jsonapp.jsjs/

fetch('data.json') // nope

これが事実である理由についての説明はありますか?

4

3 に答える 3