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问题就可以了!