【问题标题】:Nuxt pre-rendering command fails to generate static routesNuxt 预渲染命令生成静态路由失败
【发布时间】:2020-02-21 21:42:47
【问题描述】:

在将 Nuxt 设置为 spa 模式时,npm run generate 应自动为每个静态路由生成一个 html 文件(意味着每个 .vue 文件存在于 pages/ 文件夹中)。

对我来说不是。它只生成一个200.html 文件(我不明白这个文件是用来做什么的),但没有别的,甚至没有index.html

有什么建议吗?

注意:奇怪的是,如果我在我的配置文件中添加下面的代码,我可以使动态路由的生成工作,在这种情况下,为每个动态路由生成一个html 文件,但仍然没有静态路由,也没有index.html...

generate: {
  routes: () => axios.get('http://example.com/wp/wp-json/projects/v1/posts')
    .then(res => res.data.map((project) => `/project/${project.ID}/${project.post_name}`))
},

另外,如果我将路由器设置为 hash 模式,那么我会得到一个 index.html 文件,但不会生成静态或动态路由(但应用程序可以工作)。

【问题讨论】:

    标签: vue.js routing nuxt.js


    【解决方案1】:

    我无法通过运行npx create-nuxt-app <project-name> 创建的新项目重现此行为。此外,我能够在 SPA 模式下添加一个新页面,并由nuxt generate 生成它。

    仔细检查您的项目配置,确保您使用的是最新版本的 nuxt,如果问题仍然存在,请提供重现问题的最小示例。

    至于200.html文件,这是fallback page

    在运行 SPA 时,使用 200.html 更为惯用,因为它是唯一必需的文件,因为不会生成其他路由。

    我无法确认,但这暗示了您没有生成 index.html 的问题,因为据此,200.html 是 SPA 模式中唯一需要的文件。

    最后,SPA 模式是您真正追求的吗?通常,这些应用程序只有一个 HTML 文件,并且都是在客户端呈现的。在我看来,您正在关注nuxt generate,并将模式设置为universal,它会为静态托管呈现所有静态路由和所有提供的动态路由。

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 2020-03-19
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 2020-08-12
      • 2023-03-06
      • 2020-08-18
      相关资源
      最近更新 更多