解决本地nginx部署vue项目只能访问默认页面问题

问题:

vue打包生成dist文件夹,然后在本地nginx部署vue项目时只能访问默认页面,刷新和跳转页面都会出问题。
在这里插入图片描述
在这里插入图片描述


原因:

只访问了dist文件下的 index.html、index.htm页面,而其他页面在访问的时候被nginx当作自身的服务访问而找不到,我们修改一下配置文件。


方法:

添加上 try_files $uri $uri/ /index.html;
在这里插入图片描述


### 配置 Nginx 正确部署 Vue 前端项目解决方案 当使用 Nginx 部署 Vue.js 构建的前端项目时,如果遇到显示默认页面而非实际应用的情况,通常是因为 Nginx 的配置未正确指向构建后的静态文件目录或者缺少必要的路由重写规则。 以下是详细的配置方法: #### 1. 确保 Vue 项目已成功构建 在部署之前,需确认 Vue 项目已经通过 `npm run build` 或类似的命令完成打包操作。这会生成一个名为 `dist` 的文件夹,其中包含了所有的静态资源文件[^1]。 #### 2. 修改 Nginx 配置文件 编辑 Nginx 的站点配置文件(一般位于 `/etc/nginx/sites-available/your-site-config`),并按照以下模板调整设置: ```nginx server { listen 80; server_name your-domain.com; root /path/to/your/vue/dist; # 替换为您的 dist 文件夹路径 index index.html; location / { try_files $uri /index.html; # 路由重定向支持单页应用 (SPA) } location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?)$ { # 提高静态文件缓存效率 expires max; add_header Cache-Control "public, must-revalidate"; } } ``` 上述配置中的关键部分在于 `try_files $uri /index.html` 这一行,它确保即使访问的是动态路由地址也能被正确解析到 Vue 应用入口文件 `index.html` 中[^2]。 #### 3. 测试与重启服务 保存修改过的配置文件之后,先运行下面这条指令来验证语法是否有误: ```bash sudo nginx -t ``` 如果没有错误提示,则可以重新加载 Nginx 来使更改生效: ```bash sudo systemctl reload nginx ``` 至此,应该能够正常浏览所部署Vue 前端项目而不再看到 Nginx 默认欢迎界面了。 --- ### 注意事项 - 如果仍然无法解决问题,请检查防火墙设置以及服务器上的其他可能干扰因素。 - 对于 HTTPS 请求的支持也需要额外安装 SSL/TLS 证书,并相应更新上面提到的服务监听端口至 443 和启用加密传输协议选项。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coderkey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值