php 绝对刷新,vue项目线上页面刷新报404 解决方法(绝对有用)
在上线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 解决方法(绝对有用)相关推荐
- vue 项目,下载别人的项目和npm run dev报错解决方法
npm install npm run dev 通常在npm install 有时候会出错 $ cnpm install × Install fail! Error: [boostrap@^4.2.1 ...
- html ico不显示,vue 项目线上环境 出现 favicon.ico 不显示 怎么办
vue 项目线上环境 出现 favicon.ico 不显示 怎么办? 一直提示报错: GET HTTP: xxx.xxxx.xxx.xxx:8080/favicon.ico 404 (Not Foun ...
- vue 动态加载图片路径报错解决方法
vue 动态加载图片路径报错解决方法 参考文章: (1)vue 动态加载图片路径报错解决方法 (2)https://www.cnblogs.com/qingcui277/p/8930507.html ...
- 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 参 ...
- eclipse中maven项目pom文件第一行报错解决方法
eclipse中maven项目pom文件第一行报错解决方法 参考文章: (1)eclipse中maven项目pom文件第一行报错解决方法 (2)https://www.cnblogs.com/wxym ...
- vue项目引入本地图片不显示的解决方法
一般情况我们引入图片方式: 这样传过去的图片地址,在页面无法显示: 解决方法:使用 require <template><div class="logo"> ...
- SpringBoot+Vue项目线上教学平台
文末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 使用框架:springboot+vue JDK版本:jdk1.8 前言介绍 本系统地描绘了整个网上线上 ...
- VUE项目部署Tomcat页面刷新404问题解决方法
问题描述 vue项目在本地开发环境运行正常,打包部署至线上Tomcat服务后,不刷新浏览器时工作正常,一刷新浏览器就报404错误,错误截图如下: 错误描述:404,源服务器未能找到目标资源的表示或者是 ...
- SpringBoot+Vue项目线上买菜系统
文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclip ...
最新文章
- matlab处理txt文件数据
- 95后架构师晒出工资单:狠补了这个,真香...
- 信息安全系统设计基础第五周学习总结
- java向上造型的优点_老榆木家具适合什么装修风格?老榆木家具有哪些优点
- Python通过future处理并发
- Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch
- 注释标记的原则_它关系到平台如何标记操纵的媒体。 这是设计师应遵循的12条原则。
- ICLR2021 Oral |9行代码提高少样本学习泛化能力
- 嵌入式工作笔记0003---认识LCD显示器
- HDU 2256(矩阵快速幂)
- overflow 属性
- Django入门4--admin
- 12个新鲜出炉的Web开发框架
- 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_2 Mybatis中编写dao实现类的使用-保存操作...
- vista中如何解决金山词霸延时问题
- 我的世界逆时空服务器怎么注册密码,我的世界1.7.10服务器逆时空
- 外网访问腾讯云Debian系统服务器8081端口
- 现代C++的文艺复兴
- VBA案例8:实现在ppt中写vba,控制动态图
- AI人工智能毕业设计课题:人脸识别,人脸识别系统,人脸识别考勤系统
热门文章
- 第八届蓝桥杯省赛真题--纸牌三角形
- IDEA 初次使用,记录心得
- C# 6.0 的新语法特性
- 根据href给当前导航添加样式
- Could not find artifact com.sun:tools:jar:1.5.0
- 【Python 脚本报错】AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法
- BZOJ3324 : [Scoi2013]火柴棍数字
- WinCE的网络驱动实现原理
- 存储过程中ORA-01031: insufficient privileges的解决方法
- brew update失败提示:/System/Library/Frameworks/Ruby.framework/。。。解决方法