gpt4 book ai didi

firebase - Firebase 托管上的 SSR 与 GC 功能不起作用

转载 作者:行者123 更新时间:2023-12-02 19:33:26 26 4
gpt4 key购买 nike

好的,这是我的文件夹结构

这是函数索引文件:

const functions = require('firebase-functions')
const express = require('express')
const { Nuxt } = require('nuxt')

const app = express()

const config = {
dev: false,
buildDir: 'nuxt',
build: {
publicPath: '/'
}
}
const nuxt = new Nuxt(config)

function handleRequest (req, res) {
res.set('Cache-Control', 'public, max-age=600, s-maxage=1200')
nuxt.renderRoute('/').then(result => {
res.send(result.html)
}).catch(e => {
res.send(e)
})
}

app.get('*', handleRequest)
exports.nuxtApp = functions.https.onRequest(app)

但是访问该网址时我得到的只是"{"code":"MODULE_NOT_FOUND"}(部署后)

我在 nuxt.config.js 中所做的只是告诉它将构建目录放入函数文件夹中的 nuxt 文件夹中

firebase.json

{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"function": "nuxtApp"
}
]
}
}

当使用 Firebase Serve 进行本地测试时,它可以工作,但它只渲染基本 url / 而没有其他内容,而且我也没有像我的 scss 文件或应用 list 这样的静态资源。

最佳答案

经过几天的调试,我找到了解决方案。

首先,您必须扩展错误日志记录,以便可以看到堆栈跟踪:

console.error(e)
res.send(e)

我的错误是:

error#1 firebase 软件包未安装在我的函数文件夹中,因此我必须使用 npm install --save firebase 安装它在 functions 目录中。 Cloud Functions 不需要整个 firebase 包,但我的 nuxt 项目需要它来使用 firestore

error#2 您可能会收到类似 firebaseApp.firestore is not a function 的错误。这是由于 firebase 的错误导入导致您无法正常运行。我找到了这个问题的解决方案here

我更改此导入:

import firebase from 'firebase';
import 'firebase/firestore';

对此:

import firebase from '@firebase/app';
import '@firebase/firestore'

解决这两个错误后,我的 NuxtJs 应用与 Firebase Cloud Functions 配合良好。

关于firebase - Firebase 托管上的 SSR 与 GC 功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53303161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com