一:
报错:nginx: [emerg] WSASocketW() failed (10022: An invalid argumentwas supplied)
像使用WinSCP一样进行项目部署,把自己的电脑当做服务器放前端压缩包dist,让内网-局域网内所有人可访问前端页面
首先把nginx的文件夹放到C盘一份
在nginx.conf文件做配置,server配置的root写法:找到需要放前端压缩包的文件目录写上去
在任务管理器进程一栏里搜nginx,关闭所有的nginx服务
在C盘刚放好的nginx文件夹地址栏输入cmd打开窗口,敲nginx.exe启动
二、
nginx报错404notfound
路由hash模式去掉#号:当与第三方对接,对方要求在他们的网站上拼自己网页的url,而自己的网页路径是带#的对方识别不了,用的是vue的hash模式,我们在路由配置里将mode改成了history,继而去掉了#解决了问题。实际上我方转码对方解码url也能解决此问题。
改是改完了,打包到服务器nginx解析dist文件报错,说是找不到目标资源 token'>'
vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。
如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。
不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。
Nginx重写功能rewrite_nginx rewrite_lin琳.的博客-CSDN博客
解决方法是加入下方的rewrite处的代码 ,但实际开发中使用try_files比较多,可以搜一下使用方法,别把路径配错了
但用完这个发现nginx配置的项目打开后elementui图标不显示
https://bbs.csdn.net/topics/393535400
nginx部署vue项目,新窗口页面报错404(避免入坑) | 码农家园
最后使用了try_file方法来代替,问题解决
最终版
#页面刷新后重定向
try files $uri $uri/ /index.html $uri.html $uri.htm =404;
注意路径
三、try_files $uri $uri/ /index.html;写完后报错Nginx使用try_files返回500错误的解决方案 - 点击领取
最后是题外话,怎样在vue项目中打开html文件
https://www.cnblogs.com/kebaoye/p/15970258.html
像访问上面图片一样http://localhost:8989/static/img/userB.png访问html路径: http://localhost:8989/static/testJs.html
页面跳转
<a href="/static/testJs.html">跳转</a>
报错: [emerg] unknown directive "? in C:ginx-120.1/conf/nginx.conf:2ginx:nginx: co
解决方法
还有一件事,root写在localtion里面外面都行,重要的是不能同时存在