どういうわけかユーザーをホームページにリダイレクトすることは可能ですか(/
)404ページを表示する代わりに?
Gatsbyはsrc/pages/404.jsx
(jsx
拡張機能を使用していない場合は404.js
)から404ページを作成します。したがって、ホームページにリダイレクトするコンポーネントを作成すると、次のようなトリックが実行されます。
import React from 'react';
export default function NotFound() {
if (typeof window !== 'undefined') {
window.location = '/';
}
return null;
}
window
オブジェクトがビルド時に定義されていないため、ここでの他の回答は最終的に失敗します。代わりにこれを使用してください。 useEffect
フックはcomponentDidMount
と同等です。
import { useEffect } from 'react';
import { navigate } from 'gatsby';
export default () => {
useEffect(() => {
navigate('/your-redirect/');
}, []);
return null;
};
次のことができます。
import React from 'react'
import { Redirect } from '@reach/router'
const NotFoundPage = () => <Redirect to="/" />
export default NotFoundPage
navigate()
(以前はnavigateTo()
、@ pgarciacamouに感謝)を使用してそれを行うこともできます。
import React from 'react'
import { navigate } from 'gatsby'
const NotFoundPage = () => {
return navigate('/')
}
export default NotFoundPage