0

我试图在 firebase 中运行 Express 应用程序,我正在按照这个官方视频的步骤操作:

Firebase 托管速成课程中的 Node.js 应用

我的 Express 应用实际上是在这个 URL 上运行的

http://localhost:5001/my-app/us-central1/app/test

但是在视频中,演示是在这个 url 上运行的

http://localhost:5000/test

所以,我真的很困惑,我已经做了教程显示的一切

这是我在函数/index.js 上的代码

const functions = require('firebase-functions');

const express = require('express')
const app = express()

app.get('/test', (req, res) => {
    res.send(`Well if i'm reading this the app is working`)
})


exports.app = functions.https.onRequest(app)

这是 firebase.json

{
  "hosting": {
    "public": "public",
    "rewrite":[{
      "source": "/test",
      "function": "app"
    }],
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

我做错了什么?如果我进入 localhost:5000 我只是得到公共静态 index.html,我只想自己控制应用程序。

希望大家帮我整理文档,谢谢!

4

1 回答 1

2

这里的问题是 Firebase 托管将在使用任何重写之前提供与任何路径匹配的静态内容。如果要使用 Cloud Functions 控制路径,则必须确保没有与路径匹配的静态内容。

特别是对于单页应用程序,删除 index.html 至关重要,因为它将始终作为静态内容提供。

于 2018-05-22T08:33:59.607 回答