Nuxt使用所有动态路由的后备文件生成静态站点

时间:2019-11-21 19:35:39

标签: nuxt dynamic-routing

我已经在整个互联网上搜索了我的问题的答案。到目前为止没有运气。

我想要实现的目标: 我有在通用模式下运行的Nuxt应用程序。这就像一个小型社交网络,用户可以在其中创建自己的个人资料并共享他们的工作。

因此,我正在使用动态路由(users / _id.vue),这些动态路由从url获取参数并从数据库(firebase)获取适当的数据。到目前为止一切顺利。

我想用静态主机(Netlify或Zeit Now)托管它,并且我知道可以通过generate config呈现动态路由。但这不是我想要的。对于这个特殊的路由,我可以使用一个空的shell,在该shell中,Async Javascript然后命中API,并用数据填充shell。 SEO在这里并不重要,因为配置文件始终位于auth之后。

我所需要的只是Nuxt生成一个“全部捕获”文件,然后呈现用户配置文件客户端(用户/ martha或用户/ johndoe)。 Gridsome通过从_id.vue文件中呈现_id.html来实现此目的。 Nuxt也有办法做同样的事情吗?

感谢您在这里帮助我。

1 个答案:

答案 0 :(得分:0)

请参见this

默认情况下,Nuxt generate会创建一个名为200.html的文件。

如果托管在Netlify上,则需要像这样更新generate属性:

export default {
  generate: {
    fallback: true, // Uses '404.html' instead of the default '200.html'
  }
}
  

GitHub Pages和 Netlify 自动识别404.html文件,因此我们要做的就是将generate.fallback设置为true!

我没有Zeit方面的经验,但确实找到了以下now.json个示例here

// inside now.json
{
  "version": 2,
  "routes": [
    { "handle": "filesystem" },
    { "src": "/.*", "dest": "/index.html" }
  ]
}
  

大多数SPA也具有可服务的资产,因此您应该在重写路径之前处理文件系统:

希望有帮助!如果您还有关于Netlify的其他特定问题,我很乐意回答,因为我在Nuxt的平台上确实有一些生产经验。

相关问题