nuxtjs - 两个独立的 404 页面
nuxtjs - two separate 404 pages
我正在开发一个包含两个部分的 Nuxt 应用程序。管理面板(页面位于 pages/admin/*
内)和普通用户的其余页面(位于 pages
目录的根目录内)。我正在使用以下中间件为整个“/admin/”URL 关闭 SSR:
export default function(req, res, next) {
const currentPaths = req.originalUrl
if (currentPaths.includes('/admin/')) {
res.spa = true
}
next()
}
由于我在管理面板中有一个 404 页面,当 404 发生时,普通用户也会重定向到此页面。那么,如何才能让普通用户拥有单独的404页面呢?
还有第二个问题:我以前关闭管理页面SSR的方式可以吗?谁能推荐更好的方法?
pages/admin 和/pages 的错误页面无法分开,但您实际上可以通过添加条件来检测/admin/ 路径
来显示不同的错误
<template>
<div>
<h3 v-if="error.statusCode === 404 && $nuxt.$route.path.indexOf('/admin/') > -1">Page not found in admin</h3>
<h3 v-else>Page not found</h3>
</div>
</template>
我对第二个问题没有任何经验,但是您可以先尝试构建,然后在构建模式下运行查看结果(是否包含错误)。如果您发现任何错误,您可以尝试 <client-only>
组件来包装您的管理布局
所以,要有不同布局的单独错误页面,我们可以有一个条件布局:
layout: (context) => context.route.path.indexOf('/admin/') > -1 ? 'default' : 'front/fullpage',
我正在开发一个包含两个部分的 Nuxt 应用程序。管理面板(页面位于 pages/admin/*
内)和普通用户的其余页面(位于 pages
目录的根目录内)。我正在使用以下中间件为整个“/admin/”URL 关闭 SSR:
export default function(req, res, next) {
const currentPaths = req.originalUrl
if (currentPaths.includes('/admin/')) {
res.spa = true
}
next()
}
由于我在管理面板中有一个 404 页面,当 404 发生时,普通用户也会重定向到此页面。那么,如何才能让普通用户拥有单独的404页面呢?
还有第二个问题:我以前关闭管理页面SSR的方式可以吗?谁能推荐更好的方法?
pages/admin 和/pages 的错误页面无法分开,但您实际上可以通过添加条件来检测/admin/ 路径
来显示不同的错误<template>
<div>
<h3 v-if="error.statusCode === 404 && $nuxt.$route.path.indexOf('/admin/') > -1">Page not found in admin</h3>
<h3 v-else>Page not found</h3>
</div>
</template>
我对第二个问题没有任何经验,但是您可以先尝试构建,然后在构建模式下运行查看结果(是否包含错误)。如果您发现任何错误,您可以尝试 <client-only>
组件来包装您的管理布局
所以,要有不同布局的单独错误页面,我们可以有一个条件布局:
layout: (context) => context.route.path.indexOf('/admin/') > -1 ? 'default' : 'front/fullpage',