近日在部署项目时,出现了一些问题,如图
正常的登录界面是可以访问的,但是在登录之后访问之后的地址会报404错误,于是去查看是否配置有错误,但是查看之后发现,nginx.conf与config.js两个配置文件的ip和端口都是没有错误的
这个项目部署过好多次,没有出现过这样的错误。
这是原版没动过的解压缩后的nginx.conf的源文件
圈起来的地方是应该按照项目配置对应的ip和监听的端口
listen对应的是端口,server_name对应的是访问的ip
但是发现当我去修改为实际ip和端口还是不能解决问题,经过查阅官方文档,了解到我们需要添加如下的一句话:
try_files $uri $uri/ /index.html;
记住,$uri是两个啊!!!!即$uri $uri(两个$uri之间有空格)!
这句话的作用是嘛呢?
用官方解释就是:
Checks the existence of files in the specified order and uses the first found file for request processing; the processing is performed in the current context. The path to a file is constructed from the
file
parameter according to the root and alias directives. It is possible to check directory’s existence by specifying a slash at the end of a name, e.g. “$uri/
”. If none of the files were found, an internal redirect to theuri
specified in the last parameter is made.
简单的翻译一下大致意思,差不多相当于高考报志愿这么个意思,从一志愿一直找到最后一个志愿,如果其中有满足要求的,那恭喜你考上了,找到最后一个都没有,那不好意思,清华落榜生就是你了!
用在Nginx中就是项目在加载的时候找文件用的,按照你给的文件顺序,一个一个的找,要是找到了就显示,找不到就显示404(文件路径丢失错误)。
添加的位置应当在这里:
在server下的location段里添加,此时再重新启动nginx就可以了
在nginx.exe所在的目录内,点击地址栏,输入cmd,可直接在该目录下启动命令行,无需打开cmd后再跳转目录。
若之前没有关闭nginx服务,先停止再打开,如果已关闭,可以直接输入启动服务的命令
停止nginx服务命令:
nginx -s stop
启动nginx服务命令:
start nginx
热部署nignx服务命令:
(但是不推荐使用这个命令,这个命令有时候是不起作用的,不如直接停了再启动)
nginx -s reload
重新启动nginx后,浏览器最好是清除缓存后再进行测试
可以直接在浏览器窗口按
Ctrl+Shift+Del
可直接打开清除缓存的对话框
重新测试,可以正常访问了
第一次写经验分享贴,如有不足之处,请大家提出