在将Nuxt设置为spa
模式的情况下,npm run generate
应该为每个静态路由自动生成一个html
文件(意味着为.vue
文件夹中存在的每个pages/
文件创建一个文件。
对我来说不是。它仅生成一个200.html
文件(我不知道该文件用于什么意思),但没有其他内容,甚至index.html
!
有任何建议吗?
[注意:奇怪的是,如果我在配置文件中添加以下代码,则可以使动态路由生成有效,在这种情况下,将为每个动态路由生成一个html
文件,但仍然没有静态路由,也没有[ C0] ...
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
创建的新项目来重现此行为。另外,我能够以SPA模式添加新页面,并由npx create-nuxt-app <project-name>
生成它。
仔细检查您的项目配置,确保您使用的是最新版本的nuxt,如果问题仍然存在,请提供一个再现该问题的最小示例。
关于nuxt generate
文件,这是200.html
。
运行SPA时,使用200.html更为惯用,因为它是唯一的必需文件,因为不会生成其他路由。
我无法确认,但这暗示您没有生成fallback page的问题,因为据此,index.html
是SPA模式下唯一需要的文件。
最后,您真正追求的是SPA模式吗?通常,这些应用程序只有一个HTML文件,并且都是客户端渲染的。在我看来,您是在200.html
之后,其模式设置为nuxt generate
,它将为静态托管呈现所有静态路由和所有提供的动态路由。