4

是否可以更改/自定义 Vuepress 的 404 页面而无需弹出并更改整个主题?

我目前正在使用enhanceApp.js,但我不确定如何更改路由器选项(包罗万象的路由),因为路由器已经创建。我现在的工作方式是这样的:

router.beforeEach((to, from, next) => {
  if (to.matched.length > 0 && to.matched[0].path === "*") {
    next("/404.html");
  } else {
    next();
  }
});

但是,这感觉像是一种 hack,因为我总是重定向到包含我的 404 的自定义和现有页面。有没有更官方的方法来做到这一点?

4

1 回答 1

2

我有一个基于 Vuepress 1.5.x 的站点,我能够在主题/布局下简单地创建一个名为 NotFound.vue 的页面。无需更改 enhanceApp.js。

根据这里的代码,Vuepress 本身似乎已经知道这个保留的布局名称。

我之前将该页面命名为 404.vue,但我收到警告说页面应遵循正确的 HTML 5 组件命名标准。只需将其重命名为 NotFound.vue 就可以了。

我的 NotFound.vue 文件的内容:

<template>
  <BaseLayout>
    <template #content>
      <v-container class="text-center">
        <div class="py-6" />
        <h1>Oops!</h1>
        <p>Nothing to see here.</p>
        <v-btn class="cyan--text text--darken-3"
          exact :to="'/'" text>Go home</v-btn>
      </v-container>
    </template>
  </BaseLayout>
</template>

<script>
export default {
  name: "NotFound"
};
</script>
于 2020-07-01T16:59:26.540 回答