Spotkałem się ostatnio z problem ze stroną 404 w Gatsby. Lokalnie strona działała tak jak powinna, jednak po zbudowaniu strony i wpisaniu losowego ciągu znaków/cyfr po nazwie domeny pojawiał się problem z renderowaniem strony - pojawiała się biała strona z ciągiem znaków informującym o błędzie.
{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module '/var/task/.cache/page-ssr'\nRequire stack:\n- /var/task/.netlify/functions-internal/__dsg/__dsg.js\n- /var/task/__dsg.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js","trace":["Runtime.ImportModuleError: Error: Cannot find module '/var/task/.cache/page-ssr'","Require stack:","- /var/task/.netlify/functions-internal/__dsg/__dsg.js","- /var/task/__dsg.js","- /var/runtime/UserFunction.js","- /var/runtime/index.js"," at _loadUserApp (/var/runtime/UserFunction.js:202:13)"," at Object.module.exports.load (/var/runtime/UserFunction.js:242:17)"," at Object.<anonymous> (/var/runtime/index.js:43:30)"," at Module._compile (internal/modules/cjs/loader.js:1085:14)"," at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)"," at Module.load (internal/modules/cjs/loader.js:950:32)"," at Function.Module._load (internal/modules/cjs/loader.js:790:12)"," at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)"," at internal/main/run_main_module.js:17:47"]}
Problem napotkałem na hostingu Netlify, nie sprawdzałem innych serwisów hostingowych.
Rozwiązanie problemu to dodanie zmiennej środowiskowej w ustawieniach strony na Netlify. (settings/deploy) - sekcja Environment.
Dodajmy nową zmienną o nazwie NETLIFY_SKIP_GATSBY_FUNCTIONS
z wartością true
Teraz wystarczy redeploy naszej strony i strona błędu 404 powinna działać!
Marcin ✌️