带有 create-react-app 的 URL 中的尾部斜杠是否重要?

问题描述

我使用 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。所以这部分似乎不是问题。

所以,我有两个问题:

  1. 有没有办法让 npm start 用结尾的斜杠打开网址?这至少会使开发更容易。 (我尝试更改 homepagepackage.json 的值,但尾部斜杠的存在与否似乎对(本地)应用行为没有影响。)
  2. 为什么会这样?我认为以目录结尾的 URL 中的尾部斜杠是可选的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)