所以我有一个Astro项目,集成了vue、svelte、react和tailwindcss。
我突然得到错误:加载资源失败:net::ERR_CONNECTION_RESET,加载资源失败,net::ERROR_CONNECTON_REFUSED,还有一个加载资源失败。这是下面的代码。
index.astro:
---
import Layout from "../layouts/Layout.astro";
import Navbar from '../components/React/Navbar'
---
<style>
</style>
<Layout>
<Navbar />
</Layout>
Navbar.jsx:
import React from 'react'
import { BrowserRouter, Routes, Link} from 'react-router-dom'
import Home from './Home'
import About from './About'
import Blogs from './Blogs'
const Navbar = () => {
return (
<>
<BrowserRouter>
<Routes>
<Link to='/'>
<p>Home</p>
<Home />
</Link>
<Link to='/about'>
<p>About</p>
<About />
</Link>
</Routes>
</BrowserRouter>
</>
)
}
export default Navbar
About.jsx、Blog.jsx和Home.jsx有以下代码:
import React from 'react'
const Component = () => {
return (
<>
</>
)
}
export default Component
有什么办法解决这个问题吗?
错误修复
我复制了你的例子,我修复了的两个错误
- 从
Navbar.jsx
中删除未使用的import Blogs from './Blogs'
,这是错误的文件名,因为您提到这些文件是不带"s"的Blog.jsx
- 第二个错误是
error document is not defined
修复了index.astro
的此更新,添加了client:only
指令以确保Astro服务器生成步骤不会尝试执行使用浏览器"文档"API的组件
---
import Layout from "../layouts/Layout.astro";
import Navbar from '../components/React/Navbar'
---
<style>
</style>
<Layout>
<Navbar client:only/>
</Layout>
注1:在修复了这两个错误之后,我可以在不复制任何net::ERR_CONNECTION_REFUSED错误的情况下成功构建。
如何前进
正如你所注意到的,由于环境因素的多样性,不可能重现准确的错误:
- package.json和主要使用的Astro版本
- npm、纱线或pnpm的使用
- 对应的锁定文件
- astro.config.js
- 使用的节点版本
。。。以及基本上使每个环境都不同的一切。共享git repo是向前迈出的一大步,共享VM(StackBliz、Codesandbox、Gitpod(也有助于进一步降低可变性。
解决方案建议
为了加快问题的解决,当再现错误的示例是最小的时,总是值得注意的,并且大多数时候,当创建这种最小的示例时,错误只是消失了。
另请参阅:https://github.com/withastro/astro/tree/main/examples