Reactjs 使用firebase部署后,React网站未显示
第一次尝试部署到firebase时,我查看了youtube上的很多指南,stackoverflow也做了同样的操作,但在部署应用程序后仍然会出现空白页面 这是我的过程: -纱线构造 -firebase登录 -firebase init 我就是这样填写初始化的:Reactjs 使用firebase部署后,React网站未显示,reactjs,firebase,react-router,firebase-hosting,Reactjs,Firebase,React Router,Firebase Hosting,第一次尝试部署到firebase时,我查看了youtube上的很多指南,stackoverflow也做了同样的操作,但在部署应用程序后仍然会出现空白页面 这是我的过程: -纱线构造 -firebase登录 -firebase init 我就是这样填写初始化的: 托管:配置和部署Firebase托管站点 2.您想将什么用作公用目录?生成 3.配置为单页应用程序(将所有URL重写为/index.html)?否 4.文件build/404.html已存在。覆盖?否 5.文件build/index.ht
const App = () => {
return (
<div>
<Switch>
<Route path="/" exact component={Home} />
<Route path="/about" exact component={About} />
<Route path="/brands" exact component={Brands} />
<Route path="/guide" exact component={Guide} />
<Route path="/contact" exact component={Contact} />
<Route
render={function() {
return <p>Not found</p>;
}}
/>
</Switch>
</div>
);
};
const-App=()=>{
返回(
);
};
我的错误是:
更新:
这是现在的屏幕:
更新:
新错误:
在使用firebase之前,我尝试部署到github,因此package.json中留下了一个“homepage:”字段。我所需要做的就是删除这个字段,重建和重新部署,一切正常
转到firebase.json文件,确保“hosting”下的“public”键设置为“build”,如下所示:
"hosting": {
"public": "build"
}
当您运行firebase init时,它可能默认设置为“public”。在这种情况下,它将如下所示:
"hosting": {
"public": "public"
}
默认设置的问题是,当您运行npm run build时,React会将所有静态资产放在“build”目录中,因此您希望将firebase指向该目录
我也遇到了同样的问题,这对我很有效。
build
中的index.html
文件可能在firebase init
过程中被覆盖。当这种情况发生时,firebase会用其默认模板结构覆盖文件,因此也会覆盖该模板的原因。如果公用文件夹中的index.html
文件仍有您所需的模板,请删除build
文件夹,以及firebase生成的文件和文件夹(这不是真正的要求,只是为了保持内容更干净和新鲜),即.firebase
文件夹、.firebaserc
和firebase.json
文件,然后:
npm运行构建
或纱线构建
,具体取决于您的软件包管理器firebase登录
并填写必要的要求(如果已登录,则跳过)firebase init
build
yes
no
,以避免firebase覆盖文件firebase服务--仅托管进行测试
您需要为firebase.json文件中的service-worker.js文件设置正确的HTTP缓存头,否则在第一次部署后将无法看到更改(问题#2440)。它应该像next一样添加到“hosting”键中。见此:
制作react js项目后,执行以下操作
firebase init
键入“build”文件夹而不是公用文件夹,例如-? 您想使用什么作为公用目录构建
然后是,因为ReactJs总是提供单页应用程序。e、 g.-
??配置为单页应用程序(将所有URL重写为
/index.html
)是
npm运行构建
firebase部署
你应该做的是重定向到index.html@AlexanderStaroselsky,仍然给我空白页。如果是空白页,请检查浏览器的开发工具。它可能正在呈现HTML,但在JavaScript方面遇到了问题。@abraham它并没有告诉我开发工具不知道为什么,但控制台中有一个错误。。我编辑了帖子并添加了一个屏幕截图。你认为这是问题的原因吗?这个错误意味着那些JavaScript填充的文件没有被部署,或者不是HTML试图加载它们的地方。也许可以尝试再次构建和部署。这解决了我的问题