前言
最近在使用Nuxt3开发官网的时候,需要有一些地址跳转,但是跳转的地址是绝对路径,比如我官网是/a
的域名路径,但是需要从官网跳转到/b
路径的时候,nuxt就会报错。
在控制台会报警告:
bash
复制代码
No match found for location with path "/b"
在通过generate
命令打包的时候还会报错:
bash
复制代码
Error: [404] Page not found: /b
导致我们打包失败,实际上这个路径在生产环境是存在的,只是在本地开发的时候不存在。
不管我们使用A元素还是NuxtLink标签,配置的target="_blank"
也没有用,该报错还是报错。究其原因是因为nuxt会将这种路径识别为路由地址,为了SSG渲染,他就会去读取对应的路径文件,但是我们本地是不存在的,所以就会报错。
教程
解决办法我找了很久,在nuxt3的github仓库也找不到解决方案,在谷歌也搜索不到,头疼死了。
最终在nuxt2的教程中找到一个配置,测试了下,可以使用。
我们在nuxt.config.ts配置文件中配置一个ignore
忽略名单,让nuxt在生成的时候忽略对应的路由。
typescript
复制代码
export default defineNuxtConfig({
nitro: {
prerender: {
ignore: ["/b"]
}
}
});
这样就行了,打包不会报错了,使用a链接也不会有警告了,但是使用NuxtLink标签还是会在开发时有警告,但是打包不会报错。
需要注意的是,我们配置的路径其实是一个非完全匹配的路径,比如我们现在配置的是/b
路径,其实它会忽略所有/b/xx
的路径,可以说还是挺方便的。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)