当前位置: 首页 > wzjs >正文

西宁设计网站建设温州网站建设专家

西宁设计网站建设,温州网站建设专家,无锡大型网站建设,手机网站引导页js文章目录 Nginx 刷新后 404 的原因与解决方案静态资源路径问题(单页应用 SPA)解决方案:使用 try_files Nginx 资源路径 (root 或 alias) 配置错误示例:正确的 root配置 浏览器缓存或 Nginx 缓存影响清除浏览器缓存给静态资源加版本…

文章目录

  • Nginx 刷新后 404 的原因与解决方案
  • 静态资源路径问题(单页应用 SPA)
    • 解决方案:使用 try_files
  • Nginx 资源路径 (root 或 alias) 配置错误
    • 示例:正确的 root配置
  • 浏览器缓存或 Nginx 缓存影响
    • 清除浏览器缓存
    • 给静态资源加版本号
    • Nginx 关闭缓存
  • 反向代理 (proxy_pass) 配置错误
    • 示例:正确的反向代理
  • Nginx 日志分析
  • Nginx 配置变更后未重启
    • 解决方案
  • 总结


Nginx 刷新后 404 的原因与解决方案

最近,我负责上线一个新的前端平台,部署在 Nginx 上。最初访问时一切正常,但当我 刷新页面 时,却突然出现了 404 Not Found。这让我意识到,可能是 Nginx 的静态资源路径 出了问题。于是,我深入排查了这个 404 问题,并整理成这篇博文,希望能帮助遇到类似情况的朋友。

静态资源路径问题(单页应用 SPA)

如果 Nginx 用于托管 Vue、React、Angular 等前端单页面应用(SPA),刷新后 404 可能是因为 Nginx 直接查找 URL 对应的物理路径,而前端路由交由 JavaScript 处理

解决方案:使用 try_files

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

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

解释:

  • try_files $uri /index.html;:如果找不到请求的文件,则返回 index.html,前端路由框架再解析路径。
  • 适用于 Vue Router、React Router 这类 前端路由模式为 history 的情况。

Nginx 资源路径 (root 或 alias) 配置错误

如果 rootalias 路径错误,Nginx 找不到资源文件,导致刷新时返回 404。

示例:正确的 root配置

server {listen 80;server_name example.com;root /var/www/html;index index.html;location / {try_files $uri $uri/ /index.html;}
}

错误示例(容易导致 404):

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

alias 不能直接用于目录,应使用 root


浏览器缓存或 Nginx 缓存影响

如果修改了 Nginx 配置,但仍然 404,可能是缓存问题。

清除浏览器缓存

Ctrl + Shift + R 或在开发者工具(F12)中 禁用缓存 后尝试刷新。

给静态资源加版本号

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

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

这样可避免缓存问题。

Nginx 关闭缓存

如果静态资源仍然被缓存,可在 nginx.conf 添加:

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

然后重启 Nginx:

systemctl restart nginx

反向代理 (proxy_pass) 配置错误

如果 Nginx 代理了后端 API(如 Node.jsPython Flask),刷新后 404 可能是因为请求路径未正确转发。

示例:正确的反向代理

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

检查点:

  • 确保 backend_server:8080 服务可用。
  • proxy_pass 后必须带 /,否则会拼接路径导致 404。

错误示例(容易导致 404):

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

这里 /api 缺少 /,会导致 http://backend_server:8080api/... 这样的错误路径。


Nginx 日志分析

如果以上方法仍未解决问题,可以查看 Nginx 访问日志错误日志 进行分析:

# 查看访问日志
tail -f /var/log/nginx/access.log# 查看错误日志
tail -f /var/log/nginx/error.log

如果错误日志中出现类似:

[error] 404 No such file or directory

说明请求的资源路径错误,可能需要检查 roottry_files 配置。


Nginx 配置变更后未重启

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

解决方案

nginx -t   # 先测试配置是否正确
systemctl restart nginx  # 重启 Nginx

总结

问题解决方案
前端 SPA 应用(Vue/React)刷新 404try_files $uri /index.html;
Nginx rootalias 路径错误确保 root 指向正确的静态文件目录
浏览器缓存问题清除缓存、添加版本号、禁用 Nginx 缓存
反向代理 proxy_pass 404确保 proxy_pass 语法正确,后端服务可用
Nginx 配置修改未生效nginx -t 检查语法,systemctl restart nginx 重启

按照本文方法排查,相信可以快速找到 Nginx 刷新后 404 的真正原因,并顺利解决问题!

http://www.dtcms.com/wzjs/817656.html

相关文章:

  • 如何申请一个免费的网站空间做会计公司网站的目录
  • 电影网站建设需求分析珠海手机网站建设价格
  • 高端网站建站网络科技公司主要做什么
  • 个人工商注册查询网站子公司怎么注册
  • 网站首页如何设计wordpress登录界面能改吗
  • 贵州省建设厅网站官网wordpress+主题+引入js
  • 国外域名 网站备案物流网站和数据库建设
  • 百度快照 网站描述 更新全网营销代运营公司
  • 网站做编辑器邮箱的官方网站注册
  • 做网站那种布局好互联网保险的典型产品
  • 做消费金融网站价格有趣的网站官网
  • 集团公司做网站的好处有什么wordpress安装选择协议怎么写
  • 养老网站备案必须做前置审批吗网站建设工作领导小组
  • 山东卓商网站建设公司动漫设计专业的学校有哪些
  • 北京哪里做网站好外贸型网站推广与监测
  • 网站域名指什么wordpress 发邮件
  • 如何建设网站知乎php网站开发实战视频教程
  • 网站服务器权限加强局网站建设报告
  • 锦州网站建设更好盐城做网站的哪家公司好
  • 南昌营销网站建设门户网站开发要多久
  • 网站的链接建设网站的根目录
  • 长沙做个网站多少钱某运动服网站建设规划书
  • 陕西专业网站建设哪家好c语言可以做网站吗
  • 汕头网站建设优化企业网站在线超市
  • 用php做网站后台可以做qq空间背景音乐的网站
  • 好的网站或网页中国企业报集团是央企吗
  • 网站后台制作步骤心理软件定制开发
  • 网站关键词添加wordpress主题备份与恢复
  • 做菠菜网站好赚吗建设wap手机网站制作
  • 高质量的佛山网站模板湖南建设银行网站是多少钱