vue页面刷新出现 404 Not Found nginx

vue页面打包上传服务器刷新出现问题:

查找资料是因为:url地址是虚拟的,不是真实存在的,包括页面也是js控制,所以刷新就找不到文件而报404;需要配置nginx解决

在nginx配置文件的server中加上:

location / {
   try_files $uri $uri/ @router;
   index index.html;
}

location @router {
    rewrite ^.*$ /index.html last;
}

亲测有效~

当你使用Nginx部署Vue.js应用时,有时可能会遇到页面刷新导致空白或者404的问题。这是因为Nginx默认配置下,对于静态文件如HTML、CSS和JavaScript,它会直接发送给浏览器,而不是通过服务器处理。而对于非静态资源,比如Vue的路由请求,Nginx需要将请求转发到Node.js应用。 解决这个问题通常需要以下步骤: 1. **配置Nginx**: - 配置`location`块,将所有以`.html`结尾的请求指向你的Vue应用的根目录,例如: ```nginx location / { try_files $uri $uri/ /index.html; } ``` - 对于其他非静态资源,可以设置一个反向代理,将其定向到你的应用程序(假设后端运行在8080端口): ```nginx location /api/ { proxy_pass http://localhost:8080; } ``` 2. **Vue路由模式**: - 确保Vue应用是以hash模式(`#`开头的URL)而非history模式(去掉`#`)。因为history模式需要服务器支持HTML5 History API,而Nginx可能无法自动处理这些改变历史记录的请求。 3. **刷新问题**: - 如果你仍然遇到刷新页面空白,可以在Nginx中启用“如果不存在”缓存控制(`if_not_found`): ```nginx location / { try_files $uri $uri/ /index.html =404; } ``` - 这样当用户访问不存在的路径时,Nginx不会返回404,而是返回index.html,避免了刷新时的空白页。 **相关问题--:** 1. 如何在Nginx中启用gzip压缩来提高性能? 2. Vue.js项目如何设置跨域以让Nginx支持? 3. 如果我想在Nginx中配置HTTPS,应该如何操作?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值