欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx前端頁面刷新后出現(xiàn)404的原因與解決方案

 更新時(shí)間:2025年03月19日 09:19:38   作者:XMYX-0  
這篇文章主要來為大家詳細(xì)介紹一下Nginx前端頁面刷新后出現(xiàn)404 Not Found的原因與對(duì)應(yīng)的解決方案,有需要的小伙伴可以根據(jù)情況參考一下

最近,我負(fù)責(zé)上線一個(gè)新的前端平臺(tái),部署在 Nginx 上。最初訪問時(shí)一切正常,但當(dāng)我 刷新頁面 時(shí),卻突然出現(xiàn)了 404 Not Found。這讓我意識(shí)到,可能是 Nginx 的靜態(tài)資源路徑 出了問題。于是,我深入排查了這個(gè) 404 問題,并整理成這篇博文,希望能幫助遇到類似情況的朋友。

靜態(tài)資源路徑問題(單頁應(yīng)用 SPA)

如果 Nginx 用于托管 Vue、React、Angular 等前端單頁面應(yīng)用(SPA),刷新后 404 可能是因?yàn)?Nginx 直接查找 URL 對(duì)應(yīng)的物理路徑,而前端路由交由 JavaScript 處理。

解決方案:使用 try_files

修改 nginx.conf,確保 location / 配置如下:

location / {
    root /var/www/html;
    index index.html;
    try_files $uri /index.html;
}

解釋:

  • try_files $uri /index.html;:如果找不到請(qǐng)求的文件,則返回 index.html,前端路由框架再解析路徑。
  • 適用于 Vue Router、React Router 這類 前端路由模式為 history 的情況。

Nginx 資源路徑 (root 或 alias) 配置錯(cuò)誤

如果 root 或 alias 路徑錯(cuò)誤,Nginx 找不到資源文件,導(dǎo)致刷新時(shí)返回 404。

示例:正確的 root配置

server {
    listen 80;
    server_name example.com;

    root /var/www/html;
    index index.html;
    
    location / {
        try_files $uri $uri/ /index.html;
    }
}

錯(cuò)誤示例(容易導(dǎo)致 404):

location / {
    alias /var/www/html/;
    index index.html;
}

alias 不能直接用于目錄,應(yīng)使用 root。

瀏覽器緩存或 Nginx 緩存影響

如果修改了 Nginx 配置,但仍然 404,可能是緩存問題。

清除瀏覽器緩存

按 Ctrl + Shift + R 或在開發(fā)者工具(F12)中 禁用緩存 后嘗試刷新。

給靜態(tài)資源加版本號(hào)

在 index.html 中修改引用的 JS/CSS:

<script src="/js/app.js?v=1.0.1"></script>

這樣可避免緩存問題。

Nginx 關(guān)閉緩存

如果靜態(tài)資源仍然被緩存,可在 nginx.conf 添加:

location / {
    add_header Cache-Control "no-cache, no-store, must-revalidate";
}

然后重啟 Nginx:

systemctl restart nginx

反向代理 (proxy_pass) 配置錯(cuò)誤

如果 Nginx 代理了后端 API(如 Node.js、Python Flask),刷新后 404 可能是因?yàn)檎?qǐng)求路徑未正確轉(zhuǎn)發(fā)。

示例:正確的反向代理

location /api/ {
    proxy_pass http://backend_server:8080/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

檢查點(diǎn):

確保 backend_server:8080 服務(wù)可用。

proxy_pass 后必須帶 /,否則會(huì)拼接路徑導(dǎo)致 404。

錯(cuò)誤示例(容易導(dǎo)致 404):

location /api {
    proxy_pass http://backend_server:8080;
}

這里 /api 缺少 /,會(huì)導(dǎo)致 http://backend_server:8080api/... 這樣的錯(cuò)誤路徑。

Nginx 日志分析

如果以上方法仍未解決問題,可以查看 Nginx 訪問日志 和 錯(cuò)誤日志 進(jìn)行分析:

# 查看訪問日志
tail -f /var/log/nginx/access.log

# 查看錯(cuò)誤日志
tail -f /var/log/nginx/error.log

如果錯(cuò)誤日志中出現(xiàn)類似:

[error] 404 No such file or directory

說明請(qǐng)求的資源路徑錯(cuò)誤,可能需要檢查 root 或 try_files 配置。

Nginx 配置變更后未重啟

如果修改了 nginx.conf 但未生效,可能是 Nginx 未重新加載配置。

解決方案

nginx -t   # 先測試配置是否正確
systemctl restart nginx  # 重啟 Nginx

總結(jié)

問題解決方案
前端 SPA 應(yīng)用(Vue/React)刷新 404try_files $uri /index.html;
Nginx root 或 alias 路徑錯(cuò)誤確保 root 指向正確的靜態(tài)文件目錄
瀏覽器緩存問題清除緩存、添加版本號(hào)、禁用 Nginx 緩存
反向代理 proxy_pass 404確保 proxy_pass 語法正確,后端服務(wù)可用
Nginx 配置修改未生效nginx -t 檢查語法,systemctl restart nginx 重啟

按照本文方法排查,相信可以快速找到 Nginx 刷新后 404 的真正原因,并順利解決問題!

到此這篇關(guān)于Nginx前端頁面刷新后出現(xiàn)404的原因與解決方案的文章就介紹到這了,更多相關(guān)Nginx頁面刷新404內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法

    權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法

    這篇文章主要介紹了權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法,本文中導(dǎo)致 403 Forbidden錯(cuò)誤的原因是配置文件中沒有指明一個(gè)用戶,需要的朋友可以參考下
    2014-08-08
  • Nginx服務(wù)器屏蔽與禁止屏蔽網(wǎng)絡(luò)爬蟲的方法

    Nginx服務(wù)器屏蔽與禁止屏蔽網(wǎng)絡(luò)爬蟲的方法

    今天小編就為大家分享一篇關(guān)于Nginx服務(wù)器屏蔽與禁止屏蔽網(wǎng)絡(luò)爬蟲的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • nginx下的代理服務(wù)器80端口被封的解決方案

    nginx下的代理服務(wù)器80端口被封的解決方案

    這篇文章主要是講:通過nginx下面的代理服務(wù)器,實(shí)現(xiàn)訪問A地址的時(shí)候自動(dòng)代理到B地址的某個(gè)端口,主要用于標(biāo)題說的某個(gè)端口被日.其他東西都正常的情況下,這玩意早上我剛剛測試過,這博客就是個(gè)很好的例子.
    2010-06-06
  • nginx 偽靜態(tài)Rewrite正則資源匯總

    nginx 偽靜態(tài)Rewrite正則資源匯總

    本文給大家匯總介紹了nginx中使用rewrite偽靜態(tài)正則表達(dá)式的資源,非常的全面詳細(xì),有需要的小伙伴可以參考下
    2016-08-08
  • 如何利用nginx做代理緩存淺析

    如何利用nginx做代理緩存淺析

    Nginx緩存主要是用于減輕后端服務(wù)器的負(fù)載,提高網(wǎng)站并發(fā)量,提升用戶體驗(yàn)度,下面這篇文章主要給大家介紹了關(guān)于如何利用nginx做代理緩存的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Nginx+tomcat負(fù)載均衡集群的實(shí)現(xiàn)方法

    Nginx+tomcat負(fù)載均衡集群的實(shí)現(xiàn)方法

    這篇文章主要介紹了Nginx+tomcat負(fù)載均衡集群,的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Nginx優(yōu)化配置和內(nèi)核優(yōu)化 實(shí)現(xiàn)突破十萬并發(fā)

    Nginx優(yōu)化配置和內(nèi)核優(yōu)化 實(shí)現(xiàn)突破十萬并發(fā)

    Nginx是一個(gè)高性能的 HTTP 和 反向代理 服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。本文介紹一些Nginx優(yōu)化代碼參數(shù)等
    2013-06-06
  • nginx代理參數(shù)proxy_pass的實(shí)現(xiàn)

    nginx代理參數(shù)proxy_pass的實(shí)現(xiàn)

    proxy_pass參數(shù)用于配置反向代理,本文主要介紹了nginx代理參數(shù)proxy_pass的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 詳解Nginx如何配置Web服務(wù)器的示例代碼

    詳解Nginx如何配置Web服務(wù)器的示例代碼

    這篇文章主要介紹了詳解 Nginx如何配置Web服務(wù)器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Nginx靜態(tài)資源服務(wù)器的實(shí)現(xiàn)示例

    Nginx靜態(tài)資源服務(wù)器的實(shí)現(xiàn)示例

    靜態(tài)資源即非服務(wù)器動(dòng)態(tài)生成的文件,本文主要介紹了Nginx靜態(tài)資源服務(wù)器的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08

最新評(píng)論