VUE页面刷新404

一、配置nginx(nginx和项目要在一台机器上)

当访问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%90vue

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/............;
        }
    }
}

 

二、也可在前端代码所在的tomcat中的web.xml中配置

<error-page>    
    <error-code>404</error-code>    
    <location>/</location>    
</error-page> 

以下图:nginx

这个方式有一个弊端,虽然能够解决404的显示问题,可是这个404会被浏览器捕获到,这就形成一个坑,若是你的WEB项目是在微信中打开的,微信捕获到404后,就会重定向到公益页面,就形成了刷新,直接跳到了公益页面。web

 

三、一些linux命令

命令: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 文件地址
相关文章
相关标签/搜索