【发布时间】:2018-08-07 19:51:02
【问题描述】:
我正在 Firebase 云功能和托管之上构建我的网络应用。我的客户端是使用 create-react-app 构建的,并且我有一个小型快速服务器在云功能中运行,为应用构建提供服务。
在普通浏览器窗口中一切正常,但是我遇到了一个问题,如果我在隐身模式或移动设备中转到任何不是“/”的 url,我会得到 404 和“未找到”
ie:直接点击“https://144blocks.com/week”将在普通浏览器窗口中正常加载,但在隐身和移动设备中会引发以下错误。
我为网站提供服务的 firebase 功能是:
functions/index.js
const functions = require('firebase-functions');
const express = require('express');
const fs = require('fs');
const path = require('path');
const app = express();
app.get('/*', (req, res) => {
const fullPath = path.normalize(__dirname + '/../react-ui/build/index.html');
res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
res.sendFile(fullPath);
});
exports.app = functions.https.onRequest(app);
在我的客户端中,我的 firebase.json 文件:
firebase.json
{
"hosting": {
"public": "react-ui/build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"function": "app"
}
]
}
}
我不知道为什么在隐身窗口或移动设备中除了“/”之外,我无法直接点击任何路线。理想情况下,我希望我的所有路由都流经我的 express 服务器上的 app.get(/*,并让我的客户端处理路由。
【问题讨论】:
-
仅供参考:that URL 在 Mac 上的 Chrome 中也为我提供了 404。顺便说一句,该应用程序看起来很棒,至少在主页动画中。 :-)
-
@FrankvanPuffelen 感谢您的仔细检查和对应用程序的赞美????
-
@Onaracs 你是怎么解决这个问题的?
标签: firebase express google-cloud-functions firebase-hosting incognito-mode