Javascript中的相对路径

user2467065:

今天,我对Java相对路径的使用感到惊讶。我将情况归结为以下几点:

假设您具有以下目录结构:

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,但令我惊讶的是,我传递给的URL fetch必须是相对于app.html而不是相对于的app.js我希望此路径能正常工作,因为data.jsonapp.js位于同一目录(js/):

fetch('data.json') // nope

是否有这种情况的解释?

j_ernst:

当您说fetch('data.json')有效的请求时,http://yourdomain.com/data.json因为它是相对于您发出请求的页面的。您应以正斜杠开头,这将指示该路径相对于域根目录:fetch('/js/data.json')或完全符合您的域名要求fetch('http://yourdomain.com/js/data.json')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章