在将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
文件,但不会生成静态或动态路由(虽然该应用程序可以运行)。
答案 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
,它将为静态托管呈现所有静态路由以及所有提供的动态路由。