在上线vue开发的前端网页上线后,刷新页面报404错误,因为网页上显示的是静态绝对路径,实际上服务器上是没有改路径的所以刷新汇报错误。

1、vue框架中解决404

vue router  mode 默认为hsas, 这样的url中带有#,如果把mode: 'history'就能去掉#号,也可以正常访问,但是再次刷新页面就会出现404错误。

const router = new Router({

mode: 'history'

});

url中带有#,让有强迫症的人很不爽,可以去掉,去掉后就需要改nginx配置文件了。

2、修改nginx配置文件

将上面代码放入nginx配置文件中

保存退出

. ./nginx -t -- 验证nginx配置文件是否正确

. ./nginx -s reload -- 重启nginx

记得修改完nginx配置文件一定要重启nginx  不然没有效果!!!

亲自试验截图:可以访问

一、Nginx的配置语法灵活,可控制度非常高。在0.7以后的版本中加入了一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率。

作用域:server location

try_files

uriuriuri/ @rewrites

这句话是什么意思?

try_files从字面上理解就是尝试文件,再结合环境理解就是“尝试读取文件”,那他想读取什么文件呢,

答:读取静态文件

$uri  这个是nginx的一个变量,存放着用户访问的地址,

比如:http://www.xxx.com/index.html, 那么$uri就是 /index.html

uri/代表访问的是一个目录,比如:http://www.xxx.com/hello/test/,那么uri/代表访问的是一个目录,比如:http://www.xxx.com/hello/test/,那么uri/就是 /hello/test/

完整的解释就是:try_files 去尝试到网站目录读取用户访问的文件,如果第一个变量存在,就直接返回;

不存在继续读取第二个变量,如果存在,直接返回;不存在直接跳转到第三个参数上。

比如用户访问这个网地址:http://www.xxx.com/test.html

try_files首先会判断他是文件,还是一个目录,结果发现他是文件,与第一个参数 $uri变量匹配。

然后去到网站目录下去查找test.html文件是否存在,如果存在直接读取返回。如果不存在直接跳转到第三个参数,而第三个参数是一个location,而这个location里面配置的就是rewrite规则。

二、常见的nginx配置文件中常见如下写法:

try_files

这个东西是重定向用的,我感觉和index 差不多,不过确实比index 要好用

举个例子:

访问:xf.com/aa

如果我们这么设置,对于这一句的理解是。

try_files uriuriuri/ /index.php?$args;

当nginx 收到你的xf.com/aa ,那么会匹配到

location / {

try_files uriuriuri/ /index.php?$args;

proxy_pass http://www.baidu.com;

}

这里多说一嘴,如果没有合适的匹配,那么就会找index的值。

index.html inde.htm index.php

当找到相对应的文件,就会把你的访问url变成。

xf.com/index.html或者xf.com/index.htm  xf.com/index.php 其中一个

这回你明白index了吧

回来我们再说  try_files

当匹配到这项的时候,就开始执行try_files

nginx 回去找有没有 aa这个文件($uri) 如果没有

继续找aa这个目录($uri/) 如果也没有的话就直接

重定向到   /index.php?$args

$args 就是你的url 问号后边的参数

php 绝对刷新,vue项目线上页面刷新报404 解决方法(绝对有用)相关推荐

  1. vue 项目,下载别人的项目和npm run dev报错解决方法

    npm install npm run dev 通常在npm install 有时候会出错 $ cnpm install × Install fail! Error: [boostrap@^4.2.1 ...

  2. html ico不显示,vue 项目线上环境 出现 favicon.ico 不显示 怎么办

    vue 项目线上环境 出现 favicon.ico 不显示 怎么办? 一直提示报错: GET HTTP: xxx.xxxx.xxx.xxx:8080/favicon.ico 404 (Not Foun ...

  3. vue 动态加载图片路径报错解决方法

    vue 动态加载图片路径报错解决方法 参考文章: (1)vue 动态加载图片路径报错解决方法 (2)https://www.cnblogs.com/qingcui277/p/8930507.html ...

  4. mac上安装webpack报错解决方法Hit error EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/webpack

    mac上安装webpack报错解决方法Hit error EACCES: permission denied, mkdir '/usr/local/lib/node_modules/webpack 参 ...

  5. eclipse中maven项目pom文件第一行报错解决方法

    eclipse中maven项目pom文件第一行报错解决方法 参考文章: (1)eclipse中maven项目pom文件第一行报错解决方法 (2)https://www.cnblogs.com/wxym ...

  6. vue项目引入本地图片不显示的解决方法

    一般情况我们引入图片方式: 这样传过去的图片地址,在页面无法显示: 解决方法:使用 require <template><div class="logo"> ...

  7. SpringBoot+Vue项目线上教学平台

    文末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 使用框架:springboot+vue JDK版本:jdk1.8 前言介绍 本系统地描绘了整个网上线上 ...

  8. VUE项目部署Tomcat页面刷新404问题解决方法

    问题描述 vue项目在本地开发环境运行正常,打包部署至线上Tomcat服务后,不刷新浏览器时工作正常,一刷新浏览器就报404错误,错误截图如下: 错误描述:404,源服务器未能找到目标资源的表示或者是 ...

  9. SpringBoot+Vue项目线上买菜系统

    文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclip ...

最新文章

  1. matlab处理txt文件数据
  2. 95后架构师晒出工资单:狠补了这个,真香...
  3. 信息安全系统设计基础第五周学习总结
  4. java向上造型的优点_老榆木家具适合什么装修风格?老榆木家具有哪些优点
  5. Python通过future处理并发
  6. Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch
  7. 注释标记的原则_它关系到平台如何标记操纵的媒体。 这是设计师应遵循的12条原则。
  8. ICLR2021 Oral |9行代码提高少样本学习泛化能力
  9. 嵌入式工作笔记0003---认识LCD显示器
  10. HDU 2256(矩阵快速幂)
  11. overflow 属性
  12. Django入门4--admin
  13. 12个新鲜出炉的Web开发框架
  14. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_2 Mybatis中编写dao实现类的使用-保存操作...
  15. vista中如何解决金山词霸延时问题
  16. 我的世界逆时空服务器怎么注册密码,我的世界1.7.10服务器逆时空
  17. 外网访问腾讯云Debian系统服务器8081端口
  18. 现代C++的文艺复兴
  19. VBA案例8:实现在ppt中写vba,控制动态图
  20. AI人工智能毕业设计课题:人脸识别,人脸识别系统,人脸识别考勤系统

热门文章

  1. 第八届蓝桥杯省赛真题--纸牌三角形
  2. IDEA 初次使用,记录心得
  3. C# 6.0 的新语法特性
  4. 根据href给当前导航添加样式
  5. Could not find artifact com.sun:tools:jar:1.5.0
  6. 【Python 脚本报错】AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法
  7. BZOJ3324 : [Scoi2013]火柴棍数字
  8. WinCE的网络驱动实现原理
  9. 存储过程中ORA-01031: insufficient privileges的解决方法
  10. brew update失败提示:/System/Library/Frameworks/Ruby.framework/。。。解决方法