今天,我对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.json
和app.js
位于同一目录(js/
):
fetch('data.json') // nope
是否有这种情况的解释?
当您说fetch('data.json')
有效的请求时,http://yourdomain.com/data.json
因为它是相对于您发出请求的页面的。您应以正斜杠开头,这将指示该路径相对于域根目录:fetch('/js/data.json')
。或完全符合您的域名要求fetch('http://yourdomain.com/js/data.json')
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句