ਡਿਪਲੌਏ ਤੋਂ ਬਾਅਦ 404 ਗਲਤੀਆਂ ਕਿਵੇਂ ਠੀਕ ਕਰੀਏ: ਵੈੱਬਸਾਈਟ ਜਾਂ ਐਪ
ਜੇ ਤੁਹਾਡੀ ਐਪ ਲੋਕਲ ਤੇ ਠੀਕ ਕੰਮ ਕਰਦੀ ਹੈ ਪਰ ਡਿਪਲੌਏ ਤੋਂ ਬਾਅਦ ਪੰਨੇ 404 ਦਿੰਦੇ ਹਨ, ਤਾਂ ਸਭ ਤੋਂ ਆਮ ਕਾਰਨ ਸਿੰਗਲ-ਪੇਜ ਐਪ (SPA) ਰੂਟਿੰਗ ਦੀ ਗੈਰ-ਮੌਜੂਦਗੀ ਹੈ: ਸਰਵਰ /dashboard ਨਾਮ ਦੀ ਫਾਈਲ ਲੱਭਦਾ ਹੈ ਜੋ ਮੌਜੂਦ ਨਹੀਂ, ਕਿਉਂਕਿ ਉਹ ਰੂਟ ਸਿਰਫ਼ JavaScript ਵਿੱਚ ਹੈ। ਹੱਲ ਇੱਕ ਅਜਿਹਾ ਨਿਯਮ ਹੈ ਜੋ ਐਪ ਰੂਟਾਂ ਲਈ index.html ਭੇਜੇ। ਹੋਰ ਕਾਰਨ ਹਨ ਬਿਲਡ ਆਉਟਪੁੱਟ ਵਿੱਚ ਗੁੰਮ ਫਾਈਲਾਂ, ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਪਾਥ, ਟ੍ਰੇਲਿੰਗ-ਸਲੈਸ਼ ਦੇ ਫ਼ਰਕ, ਗਲਤ ਬੇਸ ਪਾਥ, ਅਤੇ API ਰੂਟ ਜੋ ਕਦੇ ਡਿਪਲੌਏ ਨਹੀਂ ਹੋਏ।
ਸ਼ੁਰੂ ਕਰੋ ਇਹ ਨੋਟ ਕਰਕੇ ਕਿ ਕਿਹੜਾ URL ਬਿਲਕੁਲ 404 ਦਿੰਦਾ ਹੈ ਅਤੇ ਤੁਸੀਂ ਉੱਥੇ ਕਿਵੇਂ ਪਹੁੰਚੇ। ਪੈਟਰਨ ਸਿੱਧਾ ਕਾਰਨ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।
ਕਦਮ 1: ਪੈਟਰਨ ਲੱਭੋ
| ਤੁਸੀਂ ਕੀ ਦੇਖਦੇ ਹੋ | ਸਭ ਤੋਂ ਸੰਭਾਵੀ ਕਾਰਨ | ਕਿੱਥੇ ਜਾਓ |
|---|---|---|
| ਹੋਮ ਪੰਨਾ ਕੰਮ ਕਰਦਾ ਹੈ; ਲਿੰਕ ਕਲਿੱਕ ਕਰਨਾ ਕੰਮ ਕਰਦਾ ਹੈ; ਤਾਜ਼ਾ ਕਰਨ ਜਾਂ ਡੀਪ ਲਿੰਕ ਖੋਲ੍ਹਣ ਉੱਤੇ 404 | SPA ਫਾਲਬੈਕ ਨਹੀਂ | ਕਦਮ 2 |
| ਸਾਰੇ ਪੰਨੇ 404, ਹੋਮ ਪੰਨਾ ਵੀ | ਗਲਤ ਫੋਲਡਰ ਪ੍ਰਕਾਸ਼ਿਤ, ਜਾਂ ਬਿਲਡ ਡਿਪਲੌਏ ਨਹੀਂ ਹੋਇਆ | ਕਦਮ 3 |
| ਪੰਨੇ ਲੋਡ ਹੁੰਦੇ ਹਨ, ਪਰ ਤਸਵੀਰਾਂ, ਫੌਂਟ ਜਾਂ ਸਕ੍ਰਿਪਟਾਂ 404 | ਬਿਲਡ ਵਿੱਚ ਫਾਈਲਾਂ ਗੁੰਮ, ਜਾਂ ਗਲਤ ਪਾਥ | ਕਦਮ 4 |
/about/ ਨਾਲ ਕੰਮ ਕਰਦਾ, /about ਨਾਲ ਨਹੀਂ (ਜਾਂ ਉਲਟ) | ਟ੍ਰੇਲਿੰਗ-ਸਲੈਸ਼ ਦਾ ਪ੍ਰਬੰਧ | ਕਦਮ 5 |
/About ਫੇਲ੍ਹ ਪਰ /about ਕੰਮ ਕਰਦਾ ਹੈ | ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਸਰਵਰ | ਕਦਮ 4 |
ਪੰਨਾ ਲੋਡ ਹੁੰਦਾ ਹੈ, ਪਰ /api/... ਡਾਟਾ ਕਾਲਾਂ 404 | API ਡਿਪਲੌਏ ਜਾਂ ਰੂਟ ਨਹੀਂ ਹੋਈ | ਕਦਮ 6 |
| ਪੁਰਾਣੀ ਸਾਈਟ ਦੇ ਪੁਰਾਣੇ URL 404 | ਰੀਡਾਇਰੈਕਟ ਗੁੰਮ | ਕਦਮ 7 |
| ਸਿਰਫ਼ ਕਸਟਮ ਡੋਮੇਨ ਉੱਤੇ | DNS ਜਾਂ ਡੋਮੇਨ ਸੈੱਟਅੱਪ | ਕਦਮ 8 |
ਅਸਲ ਸਟੇਟਸ ਕੋਡ ਦੇਖਣ ਲਈ, ਡਿਵੈਲਪਰ ਟੂਲ ਖੋਲ੍ਹੋ (ਸੱਜਾ-ਕਲਿੱਕ → Inspect), Network ਟੈਬ ਉੱਤੇ ਜਾਓ, ਰੀਲੋਡ ਕਰੋ, ਅਤੇ ਪਹਿਲੀ ਬੇਨਤੀ ਦਾ ਸਟੇਟਸ ਦੇਖੋ।
ਕਦਮ 2: SPA ਫਾਲਬੈਕ ਜੋੜੋ
ਇਹ ਕਲਾਸਿਕ ਕੇਸ ਹੈ। React, Vue ਜਾਂ Svelte ਸਿੰਗਲ-ਪੇਜ ਐਪ ਵਿੱਚ ਸਰਵਰ ਕੋਲ ਕੁਝ ਹੀ ਅਸਲ ਫਾਈਲਾਂ ਹੁੰਦੀਆਂ ਹਨ: index.html ਅਤੇ ਕੁਝ JavaScript ਤੇ CSS। /dashboard ਜਾਂ /projects/42 ਵਰਗੇ ਰੂਟ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਰਾਊਟਰ ਸੰਭਾਲਦਾ ਹੈ।
- ਲਿੰਕ ਉੱਤੇ ਕਲਿੱਕ ਕੰਮ ਕਰਦਾ ਹੈ: ਰਾਊਟਰ URL ਬਦਲਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਤੋਂ ਪੁੱਛੇ ਬਿਨਾਂ ਨਵਾਂ ਪੰਨਾ ਬਣਾਉਂਦਾ ਹੈ।
- ਤਾਜ਼ਾ ਕਰਨਾ ਜਾਂ ਸਿੱਧਾ ਲਿੰਕ ਖੋਲ੍ਹਣਾ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ: ਬ੍ਰਾਊਜ਼ਰ ਸਰਵਰ ਤੋਂ
/dashboardਮੰਗਦਾ ਹੈ, ਸਰਵਰ ਕੋਲ ਅਜਿਹੀ ਫਾਈਲ ਨਹੀਂ, ਅਤੇ 404 ਦਿੰਦਾ ਹੈ।
ਹੱਲ ਇੱਕ ਨਿਯਮ ਹੈ ਜੋ ਕਹਿੰਦਾ ਹੈ: ਜੇ ਬੇਨਤੀ ਕਿਸੇ ਅਸਲ ਫਾਈਲ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ, ਤਾਂ index.html 200 ਸਟੇਟਸ ਨਾਲ ਭੇਜੋ, ਅਤੇ ਰਾਊਟਰ ਨੂੰ ਸੰਭਾਲਣ ਦਿਓ। ਇਹ ਕਿਵੇਂ ਜੋੜਨਾ ਹੈ ਹੋਸਟ ਉੱਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ (ਮੌਜੂਦਾ ਡੌਕਸ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਵੇਰਵੇ ਬਦਲਦੇ ਹਨ):
| ਹੋਸਟ | ਆਮ ਫਾਲਬੈਕ ਨਿਯਮ |
|---|---|
| Netlify | ਪ੍ਰਕਾਸ਼ਿਤ ਫੋਲਡਰ ਵਿੱਚ _redirects ਫਾਈਲ ਜਿਸ ਵਿੱਚ /* /index.html 200 ਹੋਵੇ |
| Vercel | vercel.json ਵਿੱਚ ਸਾਰੇ ਪਾਥਾਂ ਤੋਂ /index.html ਵੱਲ ਰੀਰਾਈਟ (ਫਰੇਮਵਰਕ ਪ੍ਰੀਸੈੱਟ ਅਕਸਰ ਇਹ ਸੰਭਾਲਦੇ ਹਨ) |
| Cloudflare Pages | ਜੇ ਉੱਪਰਲੇ ਪੱਧਰ ਉੱਤੇ 404.html ਨਾ ਹੋਵੇ ਤਾਂ ਡਿਫਾਲਟ ਤੌਰ ਉੱਤੇ SPA-ਸ਼ੈਲੀ ਫਾਲਬੈਕ ਦਿੰਦਾ ਹੈ |
| Nginx | location / ਬਲਾਕ ਵਿੱਚ try_files $uri $uri/ /index.html; |
| Apache | .htaccess ਵਿੱਚ ਰੀਰਾਈਟ ਨਿਯਮ ਜੋ ਫਾਈਲ ਨਾ ਹੋਣ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਨੂੰ index.html ਵੱਲ ਭੇਜੇ |
| GitHub Pages | ਸਰਵਰ-ਸਾਈਡ ਰੀਰਾਈਟ ਨਹੀਂ; ਆਮ ਹੱਲ ਹਨ ਹੈਸ਼ ਰਾਊਟਿੰਗ ਜਾਂ ਇੱਕ 404.html ਜੋ ਰੀਡਾਇਰੈਕਟ ਕਰੇ |
ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਨਿਯਮ ਅਸਲ ਫਾਈਲਾਂ ਨੂੰ ਨਾ ਨਿਗਲੇ: /assets/app.js ਲਈ ਬੇਨਤੀ ਨੂੰ ਅਜੇ ਵੀ JavaScript ਫਾਈਲ ਹੀ ਮਿਲਣੀ ਚਾਹੀਦੀ ਹੈ। ਜੇ ਇਹ index.html ਦਿੰਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਖਾਲੀ ਪੰਨਾ ਅਤੇ "Failed to load module script" ਗਲਤੀ ਮਿਲਦੀ ਹੈ। ਚਿੱਟਾ ਖਾਲੀ ਪੰਨਾ ਠੀਕ ਕਰਨਾ ਵੇਖੋ।
ਰਾਊਟਰ ਵਿੱਚ ਕੈਚ-ਆਲ ਰੂਟ ਵੀ ਦਿਓ, ਤਾਂ ਜੋ ਜੋ URL ਕਿਸੇ ਪੰਨੇ ਨਾਲ ਮੇਲ ਨਾ ਖਾਵੇ ਉਹ ਖਾਲੀ ਦੀ ਥਾਂ ਇੱਕ ਦੋਸਤਾਨਾ "ਪੰਨਾ ਨਹੀਂ ਮਿਲਿਆ" ਦਿਖਾਏ।
ਜੇ ਤੁਸੀਂ ਸਰਵਰ ਸੈਟਿੰਗਾਂ ਨਹੀਂ ਬਦਲ ਸਕਦੇ, ਤਾਂ ਹੈਸ਼ ਰਾਊਟਿੰਗ (ਜਿਵੇਂ /#/dashboard) ਸਮੱਸਿਆ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ, ਕਿਉਂਕਿ # ਤੋਂ ਬਾਅਦ ਦਾ ਹਿੱਸਾ ਕਦੇ ਸਰਵਰ ਨੂੰ ਨਹੀਂ ਭੇਜਿਆ ਜਾਂਦਾ। ਇਹ ਪਹਿਲੀ ਪਸੰਦ ਨਹੀਂ, ਸਿਰਫ਼ ਇੱਕ ਹੱਲ ਹੈ: URL ਘਟੀਆ ਲੱਗਦੇ ਹਨ ਅਤੇ ਖੋਜ ਇੰਜਣਾਂ ਲਈ ਘੱਟ ਦੋਸਤਾਨਾ ਹਨ।
ਫਰੇਮਵਰਕ ਜੋ ਸਰਵਰ ਉੱਤੇ ਪੰਨੇ ਰੈਂਡਰ ਕਰਦੇ ਹਨ ਜਾਂ ਬਿਲਡ ਸਮੇਂ ਬਣਾਉਂਦੇ ਹਨ (Next.js, Astro ਅਤੇ ਵਰਗੇ), ਆਮ ਤੌਰ ਉੱਤੇ ਹਰ ਪੰਨੇ ਲਈ ਅਸਲ ਫਾਈਲਾਂ ਜਾਂ ਸਰਵਰ ਰੂਟ ਰੱਖਦੇ ਹਨ, ਇਸ ਲਈ ਇਹ ਸਮੱਸਿਆ ਉੱਥੇ ਘੱਟ ਆਮ ਹੈ। ਉਨ੍ਹਾਂ ਦਾ ਬਰਾਬਰ ਦਾ ਕੇਸ ਉਹ ਪੰਨਾ ਹੈ ਜੋ ਬਿਲਡ ਸਮੇਂ ਬਣਿਆ ਹੀ ਨਹੀਂ।
ਕਦਮ 3: ਜੋ ਅਸਲ ਵਿੱਚ ਡਿਪਲੌਏ ਹੋਇਆ ਉਹ ਜਾਂਚੋ
ਜੇ ਸਭ ਕੁਝ 404 ਦਿੰਦਾ ਹੈ, ਤਾਂ ਸਰਵਰ ਸ਼ਾਇਦ ਤੁਹਾਡੀ ਬਣੀ ਐਪ ਨਹੀਂ ਦਿਖਾ ਰਿਹਾ।
- ਸਹੀ ਫੋਲਡਰ। ਹੋਸਟ ਨੂੰ ਬਿਲਡ ਆਉਟਪੁੱਟ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ (ਆਮ ਤੌਰ ਉੱਤੇ Vite ਲਈ
dist, Create React App ਲਈbuild, ਸਟੈਟਿਕ Next.js ਐਕਸਪੋਰਟ ਲਈout), ਪ੍ਰੋਜੈਕਟ ਦੀ ਰੂਟ ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ। - ਬਿਲਡ ਚੱਲਿਆ। ਡਿਪਲੌਏ ਲਾਗ ਪੜ੍ਹੋ। ਜੇ ਬਿਲਡ ਫੇਲ੍ਹ ਹੋਇਆ, ਤਾਂ ਹੋਸਟ ਨੇ ਕੁਝ ਵੀ ਡਿਪਲੌਏ ਨਾ ਕੀਤਾ ਹੋਵੇ, ਜਾਂ ਪੁਰਾਣਾ ਵਰਜਨ ਹੋਵੇ।
index.htmlਪ੍ਰਕਾਸ਼ਿਤ ਫੋਲਡਰ ਦੇ ਸਭ ਤੋਂ ਉੱਪਰਲੇ ਪੱਧਰ ਉੱਤੇ ਹੋਵੇ, ਕਿਸੇ ਸਬ-ਫੋਲਡਰ ਵਿੱਚ ਨਹੀਂ।- ਬੇਸ ਪਾਥ ਮੇਲ ਖਾਂਦਾ ਹੋਵੇ। ਜੇ ਐਪ
example.com/app/ਉੱਤੇ ਚੱਲਦੀ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਉਸ ਬੇਸ ਨਾਲ ਬਣਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ (Vite ਦਾbase, React Router ਦਾbasename), ਨਹੀਂ ਤਾਂ ਹਰ ਰੂਟ ਅਤੇ ਸੰਪਤੀ ਗੁੰਮ ਹੋਵੇਗੀ।
ਕਦਮ 4: ਗੁੰਮ ਫਾਈਲਾਂ ਅਤੇ ਗਲਤ ਪਾਥ ਠੀਕ ਕਰੋ
ਜਦੋਂ ਪੰਨੇ ਲੋਡ ਹੁੰਦੇ ਹਨ ਪਰ ਸੰਪਤੀਆਂ 404 ਦਿੰਦੀਆਂ ਹਨ:
- ਕੇਸ ਸੰਵੇਦਨਸ਼ੀਲਤਾ। macOS ਅਤੇ Windows ਆਮ ਤੌਰ ਉੱਤੇ
Logo.pngਅਤੇlogo.pngਨੂੰ ਇੱਕੋ ਫਾਈਲ ਮੰਨਦੇ ਹਨ। ਜ਼ਿਆਦਾਤਰ Linux ਸਰਵਰ ਇਸ ਤਰ੍ਹਾਂ ਨਹੀਂ ਕਰਦੇ। ਹਰ ਹਵਾਲਾ ਅਸਲ ਫਾਈਲ ਦੇ ਨਾਮ ਨਾਲ ਹੂ-ਬ-ਹੂ ਮੇਲ ਖਾਵੇ। - ਬਿਲਡ ਤੋਂ ਬਾਹਰ ਦੀਆਂ ਫਾਈਲਾਂ। Vite ਵਿੱਚ
public/ਦੀਆਂ ਫਾਈਲਾਂ ਜਿਵੇਂ ਹਨ ਤਿਵੇਂ ਕਾਪੀ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਰੂਟ ਤੋਂ ਹਵਾਲਾ ਦਿੱਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ (/logo.png)। ਕੋਡ ਵਿੱਚ ਇੰਪੋਰਟ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਬੰਡਲ ਹੁੰਦੀਆਂ ਹਨ। ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਕਿਤੇ ਹੋਰ ਪਈ ਫਾਈਲ ਡਿਪਲੌਏ ਹੀ ਨਾ ਹੋਵੇ। - ਰਿਸ਼ਤੇਦਾਰ ਪਾਥ।
images/photo.jpgਮੌਜੂਦਾ URL ਦੇ ਸਬੰਧ ਵਿੱਚ ਹੱਲ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ/blog/post-1ਉੱਤੇ ਟੁੱਟਦਾ ਹੈ।/images/photo.jpgਵਰਤੋ। - ਲੋਕਲ ਡਿਸਕ ਉੱਤੇ ਸੰਭਾਲੇ ਅਪਲੋਡ। ਜੇ ਉਪਭੋਗਤਾਵਾਂ ਦੇ ਅਪਲੋਡ ਸਰਵਰ ਦੇ ਆਪਣੇ ਫੋਲਡਰ ਵਿੱਚ ਲਿਖੇ ਗਏ ਸਨ, ਤਾਂ ਨਵਾਂ ਵਰਜਨ ਡਿਪਲੌਏ ਹੋਣ ਉੱਤੇ ਉਹ ਗਾਇਬ ਹੋ ਜਾਂਦੇ ਹਨ। ਸਹੀ ਫਾਈਲ ਸਟੋਰੇਜ ਵਰਤੋ।
ਕਦਮ 5: ਟ੍ਰੇਲਿੰਗ ਸਲੈਸ਼ ਇਕਸਾਰ ਰੱਖੋ
/about ਅਤੇ /about/ ਵੱਖ-ਵੱਖ URL ਹਨ। ਹੋਸਟ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਸਲੈਸ਼ ਜੋੜਦੇ ਜਾਂ ਹਟਾਉਂਦੇ ਹਨ, ਅਤੇ ਤੁਹਾਡੇ ਲਿੰਕਾਂ ਜਾਂ ਰਾਊਟਰ ਨਾਲ ਮੇਲ ਨਾ ਖਾਣ ਨਾਲ 404 ਜਾਂ ਰੀਡਾਇਰੈਕਟ ਲੂਪ ਹੋ ਸਕਦੇ ਹਨ। ਇੱਕ ਸ਼ੈਲੀ ਚੁਣੋ, ਆਪਣੇ ਲਿੰਕ ਉਸੇ ਵਰਤਣ, ਅਤੇ ਹੋਸਟ ਨੂੰ ਦੂਜੀ ਸ਼ਕਲ ਨੂੰ ਇਸ ਵੱਲ ਰੀਡਾਇਰੈਕਟ ਕਰਨ ਲਈ ਸੈੱਟ ਕਰੋ। ਇਕਸਾਰਤਾ ਖੋਜ ਇੰਜਣਾਂ ਲਈ ਵੀ ਮਦਦਗਾਰ ਹੈ, ਜੋ ਨਹੀਂ ਤਾਂ ਹਰ ਪੰਨੇ ਦੀਆਂ ਦੋ ਕਾਪੀਆਂ ਦੇਖ ਸਕਦੇ ਹਨ।
ਕਦਮ 6: 404 ਦੇਣ ਵਾਲੇ API ਰੂਟ ਠੀਕ ਕਰੋ
ਜੇ ਪੰਨਾ ਲੋਡ ਹੁੰਦਾ ਹੈ ਪਰ Network ਟੈਬ ਵਿੱਚ /api/... ਬੇਨਤੀਆਂ 404 ਦਿੰਦੀਆਂ ਹਨ:
- ਬੈਕਐਂਡ ਡਿਪਲੌਏ ਨਹੀਂ ਹੋਇਆ। ਸਥਿਰ ਹੋਸਟ ਸਿਰਫ਼ ਫਾਈਲਾਂ ਦਿੰਦਾ ਹੈ; ਬੈਕਐਂਡ ਕਿਤੇ ਚੱਲਣਾ ਚਾਹੀਦਾ ਹੈ।
- ਪਾਥ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਰੂਟ ਹੁੰਦਾ ਹੈ। ਡਿਵੈਲਪਮੈਂਟ ਵਿੱਚ ਇੱਕ ਪ੍ਰੌਕਸੀ ਨੇ
/apiਨੂੰ ਵੱਖਰੇ ਸਰਵਰ ਵੱਲ ਭੇਜਿਆ ਹੋ ਸਕਦਾ ਹੈ। ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਹੋਸਟ ਨੂੰ ਸਮਾਨ ਰੀਰਾਈਟ ਚਾਹੀਦਾ ਹੈ, ਜਾਂ ਫਰੰਟ ਐਂਡ ਨੂੰ API ਦੇ ਅਸਲ ਪਤੇ ਨਾਲ ਗੱਲ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। - SPA ਫਾਲਬੈਕ ਨੇ ਇਸਨੂੰ ਫੜ ਲਿਆ। ਜੇ API ਬੇਨਤੀ 200 ਸਟੇਟਸ ਨਾਲ
index.htmlਦਿੰਦੀ ਹੈ, ਤਾਂ ਫਾਲਬੈਕ ਨਿਯਮ ਬਹੁਤ ਚੌੜਾ ਹੈ।/api/*ਨੂੰ ਇਸ ਤੋਂ ਬਾਹਰ ਰੱਖੋ।
ਡਿਪਲੌਏ ਹੋਈ ਐਪ ਦੀਆਂ /api/orders ਬੇਨਤੀਆਂ 404 ਦਿੰਦੀਆਂ ਹਨ, ਪਰ ਪ੍ਰੀਵਿਊ ਵਿੱਚ ਕੰਮ ਕਰਦੀਆਂ ਹਨ। ਵੇਖੋ ਕਿ ਪ੍ਰੀਵਿਊ ਅਤੇ ਡਿਪਲੌਏ ਹੋਈ ਐਪ ਵਿੱਚ /api ਕਿਵੇਂ ਰੂਟ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਡਿਪਲੌਏ ਹੋਏ ਫਰੰਟ ਐਂਡ ਨੂੰ ਬੈਕਐਂਡ ਤੱਕ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਪਹੁੰਚਣ ਦਿਓ।
ਕਦਮ 7: ਪੁਰਾਣੇ URL ਰੀਡਾਇਰੈਕਟ ਕਰੋ
ਜੇ ਤੁਸੀਂ ਕਿਸੇ ਹੋਰ ਸਾਈਟ ਤੋਂ ਤਬਦੀਲ ਹੋਏ ਹੋ ਜਾਂ ਢਾਂਚਾ ਬਦਲਿਆ ਹੈ, ਤਾਂ ਪੁਰਾਣੇ URL ਜੋ ਲੋਕ ਅਤੇ ਖੋਜ ਇੰਜਣ ਅਜੇ ਵੀ ਵਰਤਦੇ ਹਨ, 404 ਦੇਣਗੇ। ਹਰ ਪੁਰਾਣੇ URL ਤੋਂ ਉਸਦੇ ਨਵੇਂ ਟਿਕਾਣੇ ਵੱਲ 301 (ਸਥਾਈ) ਰੀਡਾਇਰੈਕਟ ਜੋੜੋ। ਸੂਚੀ ਰੱਖੋ ਅਤੇ ਲਾਂਚ ਤੋਂ ਬਾਅਦ ਕੁਝ ਨਮੂਨੇ ਜਾਂਚੋ। ਸਾਡੀ WordPress ਸਾਈਟ ਤਬਦੀਲ ਕਰਨ ਗਾਈਡ ਉਹ ਸੂਚੀ ਬਣਾਉਣਾ ਦੱਸਦੀ ਹੈ।
ਕਦਮ 8: ਡੋਮੇਨ ਜਾਂਚੋ
ਜੇ ਐਪ ਹੋਸਟ ਦੇ ਪਤੇ ਉੱਤੇ ਕੰਮ ਕਰਦੀ ਹੈ ਪਰ ਤੁਹਾਡੇ ਕਸਟਮ ਡੋਮੇਨ ਉੱਤੇ 404 ਦਿੰਦੀ ਹੈ, ਤਾਂ ਡੋਮੇਨ ਗਲਤ ਪ੍ਰੋਜੈਕਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰ ਰਿਹਾ ਹੋ ਸਕਦਾ ਹੈ, ਜਾਂ ਹੋਸਟ ਨਾਲ ਡੋਮੇਨ ਅਜੇ ਜੁੜਿਆ ਨਹੀਂ ਹੋਇਆ। DNS ਰਿਕਾਰਡ ਅਤੇ ਹੋਸਟ ਦੀਆਂ ਡੋਮੇਨ ਸੈਟਿੰਗਾਂ ਜਾਂਚੋ। ਕਸਟਮ ਡੋਮੇਨ ਕਿਵੇਂ ਜੋੜੀਏ ਵੇਖੋ।
ਆਪਣਾ ਅਸਲੀ 404 ਪੰਨਾ ਮਦਦਗਾਰ ਬਣਾਓ
ਕੁਝ 404 ਸਹੀ ਹਨ: ਕਿਸੇ ਨੇ URL ਗਲਤ ਲਿਖਿਆ। ਉਸ ਪੰਨੇ ਨੂੰ ਮਦਦਗਾਰ ਬਣਾਓ:
- ਇੱਕ ਛੋਟਾ ਸੁਨੇਹਾ ਅਤੇ ਹੋਮ ਪੰਨੇ ਤੇ ਮੁੱਖ ਭਾਗਾਂ ਦੇ ਲਿੰਕ
- ਜੇ ਸਾਈਟ ਵਿੱਚ ਖੋਜ ਹੈ, ਤਾਂ ਖੋਜ ਬਾਕਸ
- ਬਾਕੀ ਸਾਈਟ ਵਾਲਾ ਹੀ ਹੈਡਰ ਅਤੇ ਨੈਵੀਗੇਸ਼ਨ
ਜਿੱਥੇ ਤੁਹਾਡਾ ਸੈੱਟਅੱਪ ਇਜਾਜ਼ਤ ਦੇਵੇ, ਉੱਥੇ ਨਾ-ਮੌਜੂਦ ਪੰਨਿਆਂ ਲਈ ਅਸਲੀ 404 ਸਟੇਟਸ ਦਿਓ। 200 ਸਟੇਟਸ ਨਾਲ ਆਇਆ "ਨਹੀਂ ਮਿਲਿਆ" ਸੁਨੇਹਾ ਉਹ ਹੈ ਜਿਸਨੂੰ ਖੋਜ ਇੰਜਣ ਸਾਫਟ 404 ਕਹਿੰਦੇ ਹਨ, ਅਤੇ ਇਹ ਉਨ੍ਹਾਂ ਦਾ ਕ੍ਰਾਲ ਸਮਾਂ ਬਰਬਾਦ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਇੰਡੈਕਸਿੰਗ ਉਲਝਾ ਸਕਦਾ ਹੈ।
ਆਮ ਗਲਤੀਆਂ
- ਸਿਰਫ਼ ਕਲਿੱਕ ਕਰਕੇ ਜਾਂਚਣਾ। ਹਮੇਸ਼ਾ ਡੀਪ URL ਨਵੀਂ ਟੈਬ ਵਿੱਚ ਚਿਪਕਾ ਕੇ ਤਾਜ਼ਾ ਕਰੋ।
- ਇੱਕ ਫਾਲਬੈਕ ਜੋ ਹਰ ਚੀਜ਼ ਫੜ ਲਵੇ। ਸੰਪਤੀਆਂ ਅਤੇ API ਰੂਟ
index.htmlਦਿੰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਖਾਲੀ ਪੰਨੇ ਅਤੇ ਉਲਝਾਊ API ਗਲਤੀਆਂ ਹੁੰਦੀਆਂ ਹਨ। - ਕੇਸ ਦਾ ਬੇਮੇਲ ਜੋ ਸਿਰਫ਼ ਸਰਵਰ ਉੱਤੇ ਟੁੱਟਦਾ ਹੈ।
- ਸਰੋਤ ਫੋਲਡਰ ਡਿਪਲੌਏ ਕਰਨਾ ਬਿਲਡ ਆਉਟਪੁੱਟ ਦੀ ਥਾਂ।
- ਬਿਨਾਂ ਰੀਡਾਇਰੈਕਟ ਦੇ URL ਢਾਂਚਾ ਬਦਲਣਾ। ਹਰ ਪੁਰਾਣਾ ਲਿੰਕ 404 ਬਣ ਜਾਂਦਾ ਹੈ।
Mythex ਵਿੱਚ 404
Mythex ਵਿੱਚ ਤੁਸੀਂ ਵਰਕਸਪੇਸ ਤੋਂ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦੇ ਹੋ, ਅਤੇ ਸਥਿਰ ਫਰੰਟ ਐਂਡ ਸਥਿਰ ਸਾਈਟਾਂ ਵਜੋਂ ਡਿਪਲੌਏ ਹੁੰਦੇ ਹਨ। ਜੇ ਕੋਈ ਪ੍ਰਕਾਸ਼ਿਤ ਪੰਨਾ 404 ਦਿੰਦਾ ਹੈ, ਤਾਂ ਏਜੰਟ ਨੂੰ ਸਹੀ URL ਦਿਓ, ਦੱਸੋ ਕਿ ਤਾਜ਼ਾ ਕਰਨ ਉੱਤੇ ਹੁੰਦਾ ਹੈ ਜਾਂ ਕਲਿੱਕ ਉੱਤੇ, ਅਤੇ Network ਟੈਬ ਕੀ ਦਿਖਾਉਂਦੀ ਹੈ, ਅਤੇ ਰਾਊਟਿੰਗ ਜਾਂਚਣ ਲਈ ਕਹੋ। ਠੀਕ ਕਰਨ ਤੋਂ ਬਾਅਦ ਦੁਬਾਰਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ, ਕਿਉਂਕਿ ਲਾਈਵ ਐਪ ਤੁਹਾਡੇ ਦੁਬਾਰਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨ ਤੱਕ ਇੱਕ ਸਨੈਪਸ਼ਾਟ ਹੈ। ਜੇ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ ਬਦਲਿਆ ਅਤੇ ਲਾਈਵ ਸਾਈਟ ਪੁਰਾਣੀ ਲੱਗਦੀ ਹੈ, ਤਾਂ ਦੁਬਾਰਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ ਅਤੇ ਹਾਰਡ-ਰਿਫ੍ਰੈਸ਼ ਕਰੋ। ਜੇ ਬਿਲਡ ਫੇਲ੍ਹ ਹੋਵੇ, ਤਾਂ ਪ੍ਰਕਾਸ਼ਨ ਡਾਇਲਾਗ ਵਿੱਚ Fix with AI ਵਰਤੋ। ਡੌਕਸ ਵਿੱਚ How to publish ਅਤੇ Publish troubleshooting ਵੇਖੋ, ਅਤੇ ਸਾਡੀ AI ਨਾਲ ਬਣੀ ਐਪ ਵਿੱਚ ਗਲਤੀਆਂ ਲੱਭਣ ਗਾਈਡ ਵੇਖੋ।
404 ਚੈੱਕਲਿਸਟ
- ਨੋਟ ਕੀਤਾ ਕਿ ਕਿਹੜੇ URL 404 ਦਿੰਦੇ ਹਨ ਅਤੇ ਕਲਿੱਕ, ਤਾਜ਼ਾ, ਜਾਂ ਦੋਵਾਂ ਉੱਤੇ
- SPA ਫਾਲਬੈਕ ਐਪ ਰੂਟਾਂ ਲਈ 200 ਸਟੇਟਸ ਨਾਲ
index.htmlਦਿੰਦਾ ਹੈ - ਫਾਲਬੈਕ ਅਸਲ ਫਾਈਲਾਂ ਅਤੇ
/api/*ਨੂੰ ਬਾਹਰ ਰੱਖਦਾ ਹੈ - ਰਾਊਟਰ ਵਿੱਚ ਕੈਚ-ਆਲ "ਨਹੀਂ ਮਿਲਿਆ" ਰੂਟ ਹੈ
- ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਫੋਲਡਰ ਬਿਲਡ ਆਉਟਪੁੱਟ ਹੈ, ਅਤੇ ਬਿਲਡ ਸਫਲ ਰਿਹਾ
- ਬੇਸ ਪਾਥ ਉਸ ਥਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ ਜਿੱਥੇ ਐਪ ਚੱਲਦੀ ਹੈ
- ਫਾਈਲ ਨਾਮਾਂ ਦਾ ਕੇਸ ਹਰ ਹਵਾਲੇ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ
- ਸੰਪਤੀ ਪਾਥ
/ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ - ਟ੍ਰੇਲਿੰਗ-ਸਲੈਸ਼ ਦੀ ਸ਼ੈਲੀ ਇਕਸਾਰ ਹੈ
- API ਰੂਟ ਡਿਪਲੌਏ ਅਤੇ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਰੂਟ ਹੋਏ
- ਪੁਰਾਣੇ URL ਲਈ 301 ਰੀਡਾਇਰੈਕਟ
- ਡੀਪ ਲਿੰਕ ਨਵੀਂ ਟੈਬ ਵਿੱਚ ਚਿਪਕਾ ਕੇ ਜਾਂਚੇ ਗਏ
ਸਵਾਲ
ਮੇਰੀ React ਐਪ ਵਿੱਚ ਪੰਨਾ ਤਾਜ਼ਾ ਕਰਨ ਉੱਤੇ 404 ਕਿਉਂ ਆਉਂਦਾ ਹੈ?
ਸਿੰਗਲ-ਪੇਜ ਐਪ ਵਿੱਚ /dashboard ਵਰਗੇ ਰੂਟ ਸਿਰਫ਼ JavaScript ਵਿੱਚ ਹੁੰਦੇ ਹਨ। ਲਿੰਕ ਉੱਤੇ ਕਲਿੱਕ ਕਰਨਾ ਕੰਮ ਕਰਦਾ ਹੈ ਕਿਉਂਕਿ ਰਾਊਟਰ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਇਸਨੂੰ ਸੰਭਾਲਦਾ ਹੈ, ਪਰ ਤਾਜ਼ਾ ਕਰਨ ਉੱਤੇ ਸਰਵਰ ਤੋਂ /dashboard ਫਾਈਲ ਮੰਗੀ ਜਾਂਦੀ ਹੈ ਜੋ ਮੌਜੂਦ ਨਹੀਂ। ਹੱਲ ਇੱਕ ਅਜਿਹਾ ਨਿਯਮ ਹੈ ਜੋ ਐਪ ਰੂਟਾਂ ਲਈ index.html ਭੇਜੇ।
Netlify, Vercel ਜਾਂ Nginx ਉੱਤੇ SPA ਫਾਲਬੈਕ ਕਿਵੇਂ ਜੋੜਾਂ?
Netlify ਉੱਤੇ _redirects ਫਾਈਲ ਵਿੱਚ /* /index.html 200 ਲਿਖੋ। Vercel ਉੱਤੇ vercel.json ਵਿੱਚ ਰੀਰਾਈਟ ਜੋ ਸਾਰੇ ਪਾਥ ਨੂੰ /index.html ਵੱਲ ਭੇਜੇ। Nginx ਉੱਤੇ location ਬਲਾਕ ਵਿੱਚ try_files $uri $uri/ /index.html; ਵਰਤੋ। ਹੋਸਟ ਦੇ ਡੌਕਸ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਨਿਯਮ ਬਦਲਦੇ ਰਹਿੰਦੇ ਹਨ।
ਡਿਪਲੌਏ ਤੋਂ ਬਾਅਦ ਮੇਰੀਆਂ ਤਸਵੀਰਾਂ ਜਾਂ ਫਾਈਲਾਂ 404 ਕਿਉਂ ਦਿੰਦੀਆਂ ਹਨ?
ਆਮ ਤੌਰ ਉੱਤੇ ਫਾਈਲ ਬਿਲਡ ਆਉਟਪੁੱਟ ਵਿੱਚ ਨਹੀਂ ਹੁੰਦੀ, ਪਾਥ ਦੇ ਅੱਖਰਾਂ ਦਾ ਕੇਸ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ (ਸਰਵਰ ਅਕਸਰ ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਹੁੰਦੇ ਹਨ ਜਿੱਥੇ ਤੁਹਾਡਾ ਲੈਪਟਾਪ ਨਹੀਂ), ਜਾਂ ਪਾਥ ਰਿਸ਼ਤੇਦਾਰ ਹੈ ਜਦੋਂ ਸਲੈਸ਼ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣਾ ਚਾਹੀਦਾ ਸੀ।
ਕੀ ਗੁੰਮ ਪੰਨੇ ਲਈ ਅਸਲੀ 404 ਸਟੇਟਸ ਮਿਲਣਾ ਚਾਹੀਦਾ ਹੈ?
ਹਾਂ। ਮਦਦਗਾਰ ਨਾ-ਲੱਭਿਆ ਪੰਨਾ ਦਿਖਾਓ, ਪਰ ਜਿੱਥੇ ਤੁਹਾਡਾ ਸੈੱਟਅੱਪ ਇਜਾਜ਼ਤ ਦੇਵੇ ਉੱਥੇ 404 ਸਟੇਟਸ ਨਾਲ। ਖੋਜ ਇੰਜਣ 200 ਸਟੇਟਸ ਨਾਲ ਆਏ 'ਨਹੀਂ ਮਿਲਿਆ' ਸੁਨੇਹੇ ਨੂੰ ਸਾਫਟ 404 ਮੰਨਦੇ ਹਨ, ਜੋ ਕ੍ਰਾਲ ਸਮਾਂ ਬਰਬਾਦ ਕਰਦਾ ਹੈ ਅਤੇ ਇੰਡੈਕਸਿੰਗ ਉਲਝਾਉਂਦਾ ਹੈ।