【问题标题】:how do i rewrite my firebase.json file so i can see all my pages我如何重写我的 firebase.json 文件,以便我可以看到我的所有页面
【发布时间】:2021-11-02 14:40:53
【问题描述】:

我刚刚使用 react.js 创建了我的第一个网站。 当我运行它时,一切正常,我可以看到所有页面 (所以到目前为止,路由器都工作正常)。

我想用 firebase 托管我的网站,一切正常,我有一个域,我可以从我的网站访问登录页面。 网址:tracker-2baa0.web.app 但是当我想更改页面时,例如我想通过单击左上角的房子符号更改为“/菜单”,我收到错误消息“404 Page Not Found”。

我从其他人那里读到我必须重写 firebase.json 文件,但我不知道那里的东西到底是什么意思。 特别是我需要如何为各个路由器编写重写。

这是我的 firebase.json 文件:

    {
  "firestore": {
    "rules": "firestore.rules",
    "indexes": "firestore.indexes.json"
  },
  "hosting": {
    "public": "build",
    "rewrites": [ {
      "source": "/Menu/*",
      "destination": "/Menu"
    }],  
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "storage": {
    "rules": "storage.rules"
  }
}

还有我的路线:


var App = () => {
  var currentUserName = ""

  return (
   
    <AuthProvider>

   <Router>
   <Switch>
  
     <Route path ='/menu' exact component={Menu} />
     <Route path ='/add' exact component={Add} />
     <Route path = '/add-Evaluation' component ={AddEvaluation}/>
     <Route path ='/login' exact component={Login} />
     <Route exact path="/signup" component = {SignUp} />
     <Route path ="/projekt" exact component={Projekt} />
     <Route path ="/Contact" exact component={Contact} />
     <PrivateRoute exact path="/" component = {Home} />

  
   </Switch>
   </Router>

    </AuthProvider>
  );
}

我没有托管经验,如果有人可以帮助我或给我一些建议,我会非常高兴。

爱的问候

【问题讨论】:

    标签: javascript reactjs firebase-hosting


    【解决方案1】:

    如果您的应用是“Progressive Web App”或PWA,您很可能希望重写所有指向索引的路径。 这通常通过以下重写来完成:

        "rewrites": [
          {
            "source": "**",
            "destination": "/index.html"
          }
        ]
    

    这是因为像 react 这样的现代框架不会更改页面,而是根据 URL 路径使用页面内容编辑主页index.html

    您也可以对云功能和其他很酷的东西进行其他重写,并且可以在文档中查看 Firebase 托管支持的许多功能here 的完整示例。

    清除缓存以确保您看到服务器端的更改也是重要的

    【讨论】:

    • Ty,我明天试试,现在迟到了,链接看起来很有帮助!
    • 请注意,如果您有一个 单页应用程序,则要使用重写。虽然 PWA 通常是带有处理路由的单个 index.html 的 SPA,但您可以制作多页面 PWA,让服务器为每个路由呈现完整的页面。
    • 我只有一个 index.html,但我在 index.js 和 app.js 中处理我的路由。 github.com/JHamudi/Lehrprojekt_21-22/tree/main,我改变了我的firebase.json,但我仍然得到错误
    • 确保它没有缓存在您的端,我克隆了您链接的项目(以及我们谈到的更改)并在此处成功部署:hotzone-0.web.app
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2018-06-27
    • 2021-10-14
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多