avatar
fireworks99
keep hungry keep foolish

Web vue-nodejs with nginx

Description

Vue项目部署到云服务器nginx,同时上传后端nodejs文件.

Problem 1

修改ip:

本地开发时网络请求相关ip都是localhost,我在服务器端3000端口部署了nodejs做后台,前端在8081端口,如果发送localhost:3000的请求,请求的竟然是我身边的主机的localhost:3000!???(黑人问号脸.jpg).我只能把代码中网络请求的ip改为服务器对应ip。

这里记得清除浏览器缓存再测试。

Problem 2

页面404:

对于项目非入口页面,在浏览器地址栏直接输网址会404,我把a标签的超链接改为监听点击事件触发函数跳转路由,好一点了,后面有进一步解决的方法。

Problem 3

后台nodejs重定向redirect失效(404),大概是跟 Problem 2 同样的问题,尝试iframe + history.go(0),提交表单后本页面刷新,当然刷新会404(手动刷新也404),而且这里提交文件的时候出现问题,似乎后端处理不好,简单的文本还好一些。但是刷新一定会404的。

Problem 4

修改nginx配置解决404问题

location / {
    root ...
    index ...
    try_files $uri $uri/ /index.html; ---解决页面刷新404问题
}

最后一句话:当访问uri没有的时候,尝试访问 index.html。由于vue是单页模式,所以入口都是index.html,无论访问什么连接都由vue本身接管。

Problem 5

解决了404后,上传文件刷新页面时,后端nodejs抛异常了,似乎没收到文件,也就是说可能没收到表单,于是我又把iframe+history.go(0)删掉了,用原来后端的redirect,这时可行了。所以一开始专门解决404问题就可以了!

Site by Baole Zhao | Powered by Hexo | theme PreciousJoy