404 not found錯誤表示服務(wù)器無法找到所請求的資源。對于瀏覽器來說,這意味著該 url 無法識別。
404 請求會讓用戶感到沮喪,并可能導(dǎo)致網(wǎng)站性能不佳。此外,搜索引擎會抓取不存在的頁面并將其編入索引,因此,網(wǎng)站的排名會受到負(fù)面影響。總而言之,我們可以通過一些方法來避免搜索無法訪問的請求。
1。定期檢查鏈接
這看起來似乎微不足道,但 404 錯誤的最常見原因是頁面已被移動或刪除以及 url 鍵入不正確。因此,您可以使用 google search console 和 screaming frog seo spider 等免費工具來驗證損壞的鏈接和soft 404s(不存在的資源,但仍返回成功狀態(tài)200).
2。驗證網(wǎng)址
在發(fā)出請求之前,請驗證 url 是否正確。雖然這不能保證所請求的資源不存在,但它可以防止明顯的錯誤。為了驗證 url,有 javascript 的 url 接口。在這里您可以驗證請求文件的 url 結(jié)構(gòu)、協(xié)議、域或擴(kuò)展名。
您還可以在使用 head 方法發(fā)出 get 請求之前檢查資源是否存在。
async function fileExists(url) {
try {
const response = await fetch(url, { method: 'HEAD' });
return response.ok;
} catch (error) {
console.error('Error verifying the existence of the file:', error);
return false;
}
}
fileExists('https://example.com/file.jpg').then(exists => {
if (exists) {
console.log('File exists.');
} else {
console.log('File not found.');
}
});
登錄后復(fù)制
3。評估網(wǎng)站的限制
不要忘記檢查 html、css、javascript 文件和其他資源是否具有用戶正確的讀取和執(zhí)行權(quán)限。另請檢查 web 服務(wù)器設(shè)置中是否存在可能阻止訪問某些文件或目錄的不當(dāng)訪問限制。
allowoverride 和 require all grant 等設(shè)置如果配置不正確,可能會導(dǎo)致問題。
4。清除緩存
緩存存儲網(wǎng)站資源的副本,以便當(dāng)您再次訪問同一網(wǎng)站時,瀏覽器可以更快地加載這些資源。但是,如果網(wǎng)站資源返回 404 錯誤,則該響應(yīng)也可以存儲在緩存中。因此,即使該資源在服務(wù)器上得到糾正,用戶仍然可能收到 404 錯誤。為了解決這個問題,我們可以從http header的配置上下功夫。
您可以設(shè)置 cache-control: no-store 來防止存儲響應(yīng),或者設(shè)置 cache-control: no-cache 來強制瀏覽器在使用緩存版本之前與服務(wù)器進(jìn)行檢查。您還可以使用響應(yīng)過期的時間配置 expires 標(biāo)頭。
5。如果資源缺失,請優(yōu)雅處理
不要讓用戶遇到 404 錯誤,而是設(shè)置重定向到出現(xiàn)錯誤的替代頁面并建議其他服務(wù)。此外,如果服務(wù)已移動或重命名,請設(shè)置 301(永久)或 302(臨時)重定向到新 url。
結(jié)論
404 錯誤會對用戶體驗以及應(yīng)用程序和 seo 的可信度產(chǎn)生負(fù)面影響。作為開發(fā)人員,通過優(yōu)雅地處理 404 錯誤,您可以展現(xiàn)出對質(zhì)量和可用性的承諾,從而增強客戶對您的工作和正在開發(fā)的產(chǎn)品的信心。






