首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Firebase的Nuxt动态路由

问基于Firebase的Nuxt动态路由
EN

Stack Overflow用户
提问于 2019-08-14 20:24:13
回答 1查看 891关注 0票数 1

我的Nuxt.js应用程序有这样的结构:

代码语言:javascript
复制
/pages/index.vue
/pages/_slug/index.vue

当用户获得/{any_page}时,它将使用路径构建页面内容:

/pages/_slug/index.vue

代码语言:javascript
复制
<template>
  <div>
    {{slug}}
  </div>
</template>

<script>
import fetch from 'isomorphic-fetch';
export default {
  async asyncData({ params }) {
    return { slug: params.slug } 
  }
}
</script>

当直接通过yarn dev运行Nuxt时,这是非常完美的。

当我试图使用firebase函数运行它时:

代码语言:javascript
复制
$ firebase serve --only functions,hosting

静态路由运行良好,但是动态路由总是呈现默认的/页面,而不是执行动态页面。我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2020-01-13 01:57:28

如果使用nuxt generate,那么下面的解释应该有效。如果使用nuxt build,请看这回购,它是我为nuxt + firebase编写的一个模板。

生成说它跳过动态路由,除非您显式地指定了它们,因此出现了404个错误。在Nuxt配置文件中,要指定这些路由。下面是生成期间从数据库获取数据的一个示例。注意,在下面的示例中,doc是页面的段塞。

nuxt.config.js

代码语言:javascript
复制
generate: {
    async routes() {
      const { db } = require('./services/fireInit');
      const qs = await db.collection('recipes').get();
      return qs.docs.map(x => `/recipes/${x.id}`);
    }
  },

这种方法的缺点是,当您通过CMS添加新项时,如果您想要在不使用404的情况下使用这些新链接,则每次都需要重新构建/部署站点。如果您导航到新内容“有机”.404只发生在页面刷新或从超链接直接跳转到页面时,则不需要重新部署CMS。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57501556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档