Nuxt pre-rendering命令无法生成静态路由

时间:2019-10-25 14:09:34

标签: vue.js routing nuxt

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

对我来说不是。它只会生成一个200.html文件(我不知道该文件是用于btw的),但是没有其他东西,甚至没有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文件,但不会生成静态或动态路由(虽然该应用程序可以运行)。

1 个答案:

答案 0 :(得分:0)

我无法通过运行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,它将为静态托管呈现所有静态路由以及所有提供的动态路由。