加载网站时 Gatsby 套接字和 commons.js 错误

Gatsby socket and commons.js error when loading website

我遵循了这个有用的答案: 在 git 上加载了一个演示 Gatsby 项目。

但我收到以下错误:

localhost/:1 
        
       GET http://localhost:9000/socket.io/socket.io.js net::ERR_ABORTED 404 (Not Found)
(index):5 
        
       GET http://localhost:9000/commons.js net::ERR_ABORTED 404 (Not Found)

这就是我所做的

git clone https://github.com/MunifTanjim/gatsby-theme-dox
cd gatsby-theme-dox
npm install #or yarn install
cd demo
gatsby develop #to build the site in development mode
gatsby build && gatsby serve #to build the site in production mode

然后我在 demo/public 目录中添加了一个 404.html 页面,因为我在 gatsby serve 上遇到错误 但是现在,我得到的只是一个空白网站,其中包含我上面指出的错误。 我是 Gatsby 的初学者,我想在我的本地机器上获得这个演示 运行。

谢谢

Then I added a 404.html page to the demo/public directory since

/public 文件夹是在每次构建时从源 (/src) 文件夹中的代码自动生成的文件夹。您不能将代码放在那里,否则,在每次构建中,它都会丢失。看看 docs:

/public Automatically generated. The output of the build process will be exposed inside this folder. Should be added to the .gitignore file if not added already.

如果您想创建自定义 404 页面,您可以通过 src/pages.

中的 creating a 404.js 文件创建一个

关于您的主要问题,输出显示 localhost:9000(端口 9000)这一事实表明您使用的是 gatsby build,而不是 gatsby develop(否则端口将是 8000 ).使用第一个 (gatsby build) 您需要重建整个站点才能看到更改,而 运行 gatsby develop 您将立即看到您所做的更改(除非您更改数据源) 因为 hot reload feature.

出现您的问题是因为没有 socket.io.js 文件,因此会抛出 404 错误(未找到)。

我建议:

  • 刷新缓存 运行 gatsby clean
  • 确保 yarn installnpm install 完成且没有错误(所有依赖项安装正确)
  • 运行盖茨比开发
  • 进行一些“实时”更改,一旦您觉得足够舒服,就可以继续执行以下命令。
  • 运行 再一次gatsby build
  • 通过 gatsby serve 为网站提供服务(这将使您的网站在 localhost:9000 下本地运行)

可以在此 GitHub thread 中找到更多建议。

正如我在 , read the gatsby-cli docs 中指出的那样,我建议您了解每个命令中您在做什么。