使用nuxt部署后如何添加新的动态路由?

时间:2020-01-30 06:39:36

标签: vue.js nuxt.js static-site

我使用带有动态路由的nuxt generate在AWS上部署了我的站点。页面上没有问题。现在,我要添加新路由,而无需整个部署过程。

这是一个例子:

/post/1
/post/2
/post/3
------- already deployed and works fine ------
/post/4 <- want to add after deployment

我手动在index.html上载生成的S3,因此我可以访问/post/4/index.html之类的文件,但是如果我尝试/post/4,它会显示一个由{{ 1}}。

我认为路由未更新。 (我不知道/post/_id.vue文件夹上的路由规则是什么)

有没有办法在没有整个部署过程的情况下上传新的动态路由?

2 个答案:

答案 0 :(得分:1)

我认为您需要在部署之前生成每个页面。默认情况下,generate命令会忽略动态路由。

转到nuxt.config.js并找到生成密钥。这是生成特定网站的简单示例。

export default {
  ...
  generate: {
    routes: [
      '/post/1',
      '/post/2',
      '/post/3',
      '/post/4'
    ]
  }
}

如果您需要以编程方式生成动态路由,则需要编写一个函数。

查看文档以获取更多信息:https://nuxtjs.org/api/configuration-generate/

最后,一个简单的例子:

import BlogService from './services/BlogService.js'
...
export default {
  ...
  generate: {
    routes: () => {
      return BlogService.getPosts().then(response => {
        return response.data.map(post => {
          return '/post/' + post.id
        })
      })
    }
  }
}

答案 1 :(得分:0)

发布时出错。

amplify publish // it publish vue application. it means that the target is SPA not Static page webiste

我在S3上部署了文件,并且运行正常。

我尝试过访问以下网站。我也失败了。

https://aws.amazon.com/ko/blogs/mobile/deploy-files-s3-dropbox-amplify-console/

我想与nuxt generate一起使用amplify。

错误的问题,没有正确的答案。