NGINX和Gatsby:设置NGINX路由到Gatsby 404页面



我用nginx建立了一个Gatsby站点。我知道Gatsby使用pages/404.js中存在的任何组件作为404页面。如果我导航到www.mysite.com/404,我可以看到我创建的自定义Gatsby 404页面,但这是我唯一一次看到Gatsby组件。如果我导航到www.mysite.com/blahbullah或任何其他不存在的页面,我会看到默认的白色nginx 404页面。

我对盖茨比很熟悉,但对nginx来说却很陌生。当用户导航到一个不存在的页面而不是显示默认的nginx 404页面时,我如何设置nginx配置以将用户重定向到我的自定义Gatsby 404组件?

这是我的nginx配置:

server {
listen 80;
sendfile on;

default_type application/octet-stream;
root /usr/share/nginx/html;
location / {
try_files $uri $uri/ /index.html =404;
}
}

我也处于同样的情况。我会分享(似乎(对我有用的东西。和你一样,我正在使用Gatsby,我在pages/404.js有一个文件,我想用它来弥补遗漏的路线。我发现@ivo gelov在这里给出的答案很有帮助:nginx process=404在try_files 中如何回退

具体来说,我只是添加了一个error_page定义来匹配=404错误代码:

error_page 404 /404.html;
location / {
try_files $uri $uri/ /index.html =404;
}

最新更新