今天在部署前端项目的时候遇见一个非常奇怪的问题,在本地的时候前端项目一切正常,但是部署到线上非常奇怪一个问题,
vue Failed to load resource: the server responded with a status of 404 (Not Found)
这里说一下排查问题的思路
是我的资源文件没有放上去吗?
然后去服务器确认了一下,发现没有问题,资源文件都在,这怎么会找不到呢?
是项目中资源文件路径问题?
检查一下路径也没有问题啊,平时就是这么写的啊。
然后陷入了深深的思考,这样吧,用我本地的nginx部署一下,看看能否访问到,奇怪。。。可以唉。。。。
这是什么鬼情况?
难道是nginx的问题,线上的nginx是一手操作的啊,按道理不可能出现什么问题,再说,之前也部署过vue,也没有问题啊。
仔细思考还应该是项目的问题,仔细检查项目后恍然大悟,是项目文件权限问题导致的。
ls -l
查看我的文件权限
好多css都是rw- — ---
直接执行命令
chmod 644 目标文件
然后在访问的时候就没有问题了,
解决了问题,回顾一下吧,毕竟也浪费了10多分钟才找到原因
为什么会出现这种情况?我们nginx.config中都指定了user,这个user是指nginx用户,当nginx访问资源文件的时候是以这个用户的身份去访问的,
这样就很明白了吧,当文件权限是rw- — ---nginx用户没有权限访问我当前开发用的用户目录的resource,所以就会报错找不到资源文件。
还有一种解决办法,直接写为user root,这种方法不推荐,
如果解决了你的问题,
点个赞吧