如何处理Nuxt SSR错误并显示自定义404 || 500页?

问题描述 投票:4回答:1

当Nuxt的SSR出现错误时,您如何处理错误?

当前我正在使用error()处理程序,但在生产环境中不起作用?这是我的Nuxt应用程序的示例。

asyncData

 async asyncData({ store, route, error }) {
    return store.dispatch( NAMESPACES.USERS + ACTIONS.GET_DETAIL, userId ).then(response => ({
      data: response,
    })).catch((e) => {
      error(e)
    })
  } 

error.vue

  <vis-container>
    <vis-row class="error">
      <vis-col md="8" class="error__component">
        <component :is="errorPage" :error="error.statusCode" />
      </vis-col>

      <vis-col md="8" class="error__contact">
        <p class="error__contact__title">{{ $t('error_page.question') }}</p>
      </vis-col>
    </vis-row>
  </vis-container>
</template>

<script>
export default {
  props: ['error'],
components: {
    NotFound: () => import('@/components/error/NotFound'),
    InternalServerError: () => import('@/components/error/InternalServerError'),
  },
    computed: {
    errorPage() {
      if (this.error.statusCode === 500) {
        return 'InternalServerError'
      }

      return 'NotFound'
    },
  },
}
</script>

nuxt.js server-side-rendering nuxt vue-ssr nuxtserverinit
1个回答
0
投票

我认为本文可能对您有用:https://medium.com/finn-no/hacking-nuxts-404-logic-for-maximum-awesome-and-easy-proxying-e4efaeb03d66

令人失望的是,Nuxt没有提供使用SSR进行此操作的简便方法,因为在SSR模式下未使用error.vue。

© www.soinside.com 2019 - 2024. All rights reserved.