我用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;
}