发新帖

[Nginx] Nginx搭建的站点页面点击链接没问题,但是刷新页面报404错误

零下一度 5小时前 6

根本原因:你的站点是一个单页应用,并使用了 history 路由模式。这种模式下,浏览器的 URL 路径(如 /about)是由前端 JavaScript 动态管理的,服务器上并不存在 about 这个真实的物理文件或目录。当通过点击链接访问时,路由跳转由 JS 拦截处理,一切正常;但当刷新页面时,浏览器会直接向服务器请求 /about 这个路径,Nginx 找不到对应的文件,就返回了 404 错误。

解决方法很简单,只需在 Nginx 配置中添加一行 try_files 指令即可。

解决方案

核心操作是修改你的 Nginx 配置文件,让它在找不到对应文件时,能优雅地“回退”到你的应用入口文件 index.html

  1. 找到配置文件
    通常是 /etc/nginx/conf.d/你的站点配置文件 /etc/nginx/sites-available/default

  2. 修改配置
    server 块内,找到 location / { ... } 这个代码块,将其中的内容修改或添加为如下所示:

server {
    listen 80;
    server_name your-domain.com; # 你的域名或IP
    root /path/to/your/dist;      # 你前端项目打包后的目录(如 dist、build)
    index index.html;             # 默认入口文件
    location / {
        # 核心修改:添加这一行 try_files 指令
        try_files $uri $uri/ /index.html;
    }
}

3.保存并测试
保存配置文件后,在终端执行以下命令来测试配置语法是否正确:

nginx -t

如果显示 syntax is ok,再执行重载命令使配置生效:

nginx -s reload





最新回复 (0)
返回
零下一度
主题数
969
帖子数
0
注册排名
1