当访问vue页面时,直接访问url会被http server直接解析到该文件路径,可是spa的路由是虚拟的,并不能直接找到这个file,因此会404;html
须要把全部的请求所有指向(不知道这么说是否是准确)index,而后让js的router解析url, nginx 须要配置 try_files $url /index.html前端
(出现该问题的缘由,可查看HTML5 History 模式:https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90)vue
nginx里配置修改:linux
http { #front server { listen 80; server_name localhost; location / { root /data/............; #前端项目路径 index index.html; } error_page 404 500 502 503 504 /index.html; location = /index.html { root /data/............; } } }
<error-page> <error-code>404</error-code> <location>/</location> </error-page>
以下图:nginx
这个方式有一个弊端,虽然能够解决404的显示问题,可是这个404会被浏览器捕获到,这就形成一个坑,若是你的WEB项目是在微信中打开的,微信捕获到404后,就会重定向到公益页面,就形成了刷新,直接跳到了公益页面。web
命令:su -- 切换到root,而后会提示输入密码 cat nginx.conf 查看该文件 vim nginx.conf 编辑该文件 insert键 开始编辑 先按Esc,而后【Shift+:】,而后【wq!】保存并强制退出 --- 编辑好后,退出 查看当前所在目录: cd ~ pwd 查看nginx进程: ps -ef|grep nginx ps -ef 查看全格式的所有进程 ps -ax 查看所有进程 ps -ef|grep <进程名> 查看并筛选 跟进程名有关的进程,该进程名能够是进程的所有或者部分 测试机器能不能访问外网 curl http://www.baidu.com 查看80端口是否被占用:(监控状态为LISTEN表示已经被占用) netstat -anp |grep 80 查看当前全部已经使用的端口状况: netstat -nultp 建立nginx文件夹: mkdir /mnt/data/nginx 删除nginx文件夹: rm -rf /mnt/data/nginx 解压资源包: tar -zxvf 压缩包名 查找sbin文件 find / -iname sbin 搜索tomcat里catalina.sh文件中某一内容,如:cygwin=false grep cygwin=false catalina.sh grep -n cygwin=false catalina.sh (并输出所在行数) 查看”cygwin=false“内容在某目录下,哪一个文件中,并输出行数 grep -n cygwin=false /apache-tomcat-7.0.90/bin/* 改变nginx文件的拥有者和群组: chown -R app:app /mnt/data/nginx 赋予nginx目录读写等权限给app这个用户: chmod 755 /mnt/data/nginx 打tar包: tar -zcvf 文件名+日期.tar.gz 文件地址