【发布时间】:2021-04-26 06:37:07
【问题描述】:
我有一个使用 nuxt 和 firebase 创建的站点地图,但是当我将站点部署到 firebase 时,由于我引用了我的 fireInit 文件,但我的 nuxt.config.file 已移动到我的 firebase 函数文件夹,所以我可以部署它。当我尝试在我的 firebase 函数文件夹中添加 fireInit 文件时,我得到一个错误,因为我在模块外部导入。此外,当我通过注释掉我的异步路由功能来取出我的动态路由时,站点地图不会显示我的自定义域 URL。它显示https://us-central1-PROJECT_NAME.cloudfunctions.net。
文件结构
functions/
- nuxt.config (prod)
- index.js
public/
- _nuxt/ (client)
src/
- nuxt.config (dev)
firebase.json
Nuxt 配置
module.exports = {
modules: ['@nuxtjs/sitemap'],
sitemap: {
hostname: process.env.BASE_URL,
exclude: ['/listings/create', '/listings/edit', '/profile/**'],
async routes() {
const { db } = require('./plugins/fireInit');
const snapshots = await db.collection('listings').get();
return snapshots.docs.map((doc) => `/listings/${doc.id}`);
},
},
}
./plugins/fireInit
import firebase from 'firebase/app';
import 'firebase/firestore';
const firebaseConfig = {
apiKey: 'KEY',
authDomain: 'KEY',
projectId: 'KEY',
appId: 'KEY',
measurementId: 'KEY',
};
// init firebase
!firebase.apps.length ? firebase.initializeApp(firebaseConfig) : '';
// init services
export const db = firebase.firestore();
【问题讨论】:
-
关于
hostname,您的process.env.BASE_URL似乎是空的。如果 null ,您可以尝试强制该值吗?例如。hostname: process.env.BASE_URL || 'https://example.com/' -
非常感谢!我修复了我的静态链接。你知道如何修复动态链接吗?您还知道 process.env.BASE_URL 在生产中会为空,但在开发中不会?
标签: javascript firebase vue.js google-cloud-firestore nuxt.js