Nuxt 错误页面未在生产中显示
Posted
技术标签:
【中文标题】Nuxt 错误页面未在生产中显示【英文标题】:Nuxt error page not showing on production 【发布时间】:2022-01-20 04:44:52 【问题描述】:我有一个 Nuxt 应用程序(“nuxt”:“2.15.8”),我需要创建一个 404
页面。
阅读docs我添加了layouts/error.vue
内容:
<template>
<div>
<p>An error occurred</p>
<NuxtLink to="/">Back to home</NuxtLink>
</div>
</template>
<script>
export default
// Do not need it, I only need the 404 page
// props: ['error'],
</script>
nuxt.config.js
有:
target: 'static'
它在开发模式下运行良好 (yarn dev
)。但是,当我构建应用程序 (yarn generate
) 并将内容移至生产环境时,它会显示默认浏览器页面:
这是有道理的,因为 yarn generate
不会创建 404.page:
➜ dist git:(master) ✗ la
total 44K
-rw-rw-r-- 1 foo foo 4,4K pro 16 14:39 200.html
-rw-rw-r-- 1 foo foo 8,5K pro 16 14:39 favicon.ico
-rw-rw-r-- 1 foo foo 4,4K pro 16 14:39 index.html
-rw-rw-r-- 1 foo foo 0 pro 16 14:39 .nojekyll
drwxrwxr-x 3 foo foo 4,0K pro 16 14:39 _nuxt
如何修复它以使产品显示 404 页面?谢谢
【问题讨论】:
如果你上传it here,你会投影工作吗? 【参考方案1】:Nuxt 不会创建默认的404.html
页面,因为它是一个 webapp,如果有错误默认的后备页面是页面 200.html,如果你想将 200.html 更改为 404.html 你需要添加:
generate: fallback: '404.html' ,
在你的nuxt.config.js
。
但这根本不是,在某些服务器中你需要重定向到正确的404页面。
【讨论】:
您也可以使用fallback: true
,如the documentation所示。
我在我的 pages 目录中创建了一个 '_.vue' 文件来处理 404 not found 错误。你能告诉我这是否可以,或者我应该避免它并改用其他解决方案吗?
这取决于,通过这种方式(不那么优雅)你可以对用户说“嘿兄弟页面不存在”,但对谷歌你总是说 http 200 代码以上是关于Nuxt 错误页面未在生产中显示的主要内容,如果未能解决你的问题,请参考以下文章
Tailwind CSS Nuxt 禁用清除选项在生产中引发错误
在生产中的 Nuxt 组件中没有调用挂载的钩子(完全静态)?
SpringBoot 在生产中没有找到错误模板,尽管它在 Netbeans 中找到了它