问题描述
我使用 create-react-app 构建了一个 React 应用程序。当我运行 npm start
时,浏览器会打开 localhost:3000/proj/t
。 (注意没有尾部斜杠。)
应用程序中断,因为它无法 fetch
位于 localhost:3000/proj/t/data/file.json
的数据文件。该应用似乎在寻找不存在的 localhost:3000/proj/t/proj/data/file.json
。
我的 fetch
代码如下:
const getData = () => {
fetch(`./data/${slug}.json`,{
headers: {
'Content-Type': 'application/json','Accept': 'application/json'
}
}
).then(function(response) {
return response.json();
}
).then(function(myJson) {
// lots of processing here
})
};
如果我在浏览器 (localhost:3000/proj/t/
) 中的 URL 末尾添加斜杠,则一切正常。从 localhost:3000/proj/t/data/file.json
检索数据,一切正常。
在上面的代码中,如果我在 slug
之前记录 fetch
,它总是具有正确的值:file
。所以这部分似乎不是问题。
所以,我有两个问题:
- 有没有办法让
npm start
用结尾的斜杠打开网址?这至少会使开发更容易。 (我尝试更改homepage
中package.json
的值,但尾部斜杠的存在与否似乎对(本地)应用行为没有影响。) - 为什么会这样?我认为以目录结尾的 URL 中的尾部斜杠是可选的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)