Gatsby重定向到主页,而不是显示404页面

时间:2018-08-06 07:15:38

标签: gatsby

是否可以通过某种方式将用户重定向到首页(/)而不是显示404页面?

4 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

import React from 'react'
import { Redirect } from '@reach/router'

const NotFoundPage = () => <Redirect to="/" />

export default NotFoundPage

答案 1 :(得分:2)

Gatsby从src/pages/404.jsx(如果不使用404.js扩展名,则从jsx创建404页面)。因此,创建一个重定向到主页的组件应该可以解决问题,就像这样:

import React from 'react';

export default function NotFound() {
  if (typeof window !== 'undefined') {
    window.location = '/';
  }

  return null;
}

答案 2 :(得分:0)

由于在构建时未定义window对象,因此上述答案在构建时将失败。改用它。使用效果是等同于componentDidMount的钩子。

import { useEffect } from 'react';
import { navigate } from 'gatsby';

export default () => {
  useEffect(() => {
    navigate('/your-redirect/');
  }, []);
  return null;
};

答案 3 :(得分:0)

您也可以使用items.groupBy(_ / 100 * 100).mapValues(_.map(_ => 1).reduce(_ + _)).toMap

navigateTo()