详解nginx配置vue h5 history去除#号


Posted in Javascript onNovember 09, 2020

vue的默认配置是使用hash模式,这样我们访问的时候都带有了一个#号,再支付回调的地址或者其他原因不支持#号或者不喜欢#号这种模式,优势就出现了需要去除#号,于是vue端就需要配置该模式,并且使用懒加载,vue端的配置如下:

首先先声明一下,这是使用vue+nginx实现前后端分离的项目,并且使用vue axios实现代理功能(允许跨域并且服务端已经开启跨域),

详解nginx配置vue h5 history去除#号

然后就是打包的配置:

详解nginx配置vue h5 history去除#号

!!!注意,这里配置的assetsPublicPath一定要配置成  "/"  而不是  "./"之类的,不然nginx服务端即使配置成为了vue h5 history模式,也会出现如下错误:

Uncaught SyntaxError: Unexpected token <
manifest.16a4233693dc526194f6.js:1 Error: Loading chunk 23 failed.
  at HTMLScriptElement.t (manifest.16a4233693dc526194f6.js:1)
d.oe @ manifest.16a4233693dc526194f6.js:1
Promise.catch (async)
component @ app.a879af571e30c08073af.js:1
(anonymous) @ vendor.8f8ebced8a21d4a0633a.js:6
(anonymous) @ vendor.8f8ebced8a21d4a0633a.js:6
(anonymous) @ vendor.8f8ebced8a21d4a0633a.js:6
ve @ vendor.8f8ebced8a21d4a0633a.js:6
(anonymous) @ vendor.8f8ebced8a21d4a0633a.js:6
h @ vendor.8f8ebced8a21d4a0633a.js:6
i @ vendor.8f8ebced8a21d4a0633a.js:6
i @ vendor.8f8ebced8a21d4a0633a.js:6
(anonymous) @ vendor.8f8ebced8a21d4a0633a.js:6
(anonymous) @ vendor.8f8ebced8a21d4a0633a.js:6
(anonymous) @ app.a879af571e30c08073af.js:1
h @ vendor.8f8ebced8a21d4a0633a.js:6
i @ vendor.8f8ebced8a21d4a0633a.js:6
i @ vendor.8f8ebced8a21d4a0633a.js:6
i @ vendor.8f8ebced8a21d4a0633a.js:6
pe @ vendor.8f8ebced8a21d4a0633a.js:6
_e.confirmTransition @ vendor.8f8ebced8a21d4a0633a.js:6
_e.transitionTo @ vendor.8f8ebced8a21d4a0633a.js:6
t.push @ vendor.8f8ebced8a21d4a0633a.js:6
Pe.push @ vendor.8f8ebced8a21d4a0633a.js:6
b @ vendor.8f8ebced8a21d4a0633a.js:6
t @ vendor.8f8ebced8a21d4a0633a.js:12
Fi.t._withTask.s._withTask @ vendor.8f8ebced8a21d4a0633a.js:12
vendor.8f8ebced8a21d4a0633a.js:6 Error: Loading chunk 23 failed.
  at HTMLScriptElement.t (manifest.16a4233693dc526194f6.js:1)

所以,请谨慎配置,坑比较多,下面就是nginx服务端的配置了,

server {
    listen    80 default_server;
    listen    [::]:80 default_server;
    server_name _;
    root     /usr/share/nginx/dist;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    #根据路由设置,避免出现404
    location ^~ /api/ {
        add_header 'Access-Control-Allow-Origin' '*';
        proxy_pass http://service.xxxx.com/;
    }
    location / {
      try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
      index index.html index.htm;
    }
    #对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
    #因此需要rewrite到index.html中,然后交给路由在处理请求资源
    location @router {
      rewrite ^.*$ /index.html last;
    }
    error_page 404 /404.html;
      location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
      location = /50x.html {
    }
  }

这样配置就算是配置好了,然后就不会出现页面刷新显示404的错误了。

到此这篇关于详解nginx配置vue h5 history去除#号的文章就介绍到这了,更多相关nginx配置h5去除#号内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Prototype使用指南之form.js
Jan 10 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
Apr 25 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
May 07 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
Jan 06 Javascript
jQuery写fadeTo示例代码
Feb 21 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
不到30行JS代码实现Excel表格的方法
Nov 15 Javascript
JavaScript模仿Pinterest实现图片预加载功能
Oct 25 Javascript
jquery实现数字输入框
Feb 22 Javascript
jQuery实现的简单拖动层示例
Feb 22 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
Nov 11 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
Nov 09 #Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 #Javascript
详解Vue中的watch和computed
Nov 09 #Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
Nov 09 #Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
Nov 09 #Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 #Javascript
Vue路由权限控制解析
Nov 09 #Javascript
You might like
Zerg建筑一览
2020/03/14 星际争霸
php4的session功能评述(一)
2006/10/09 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
PDO::commit讲解
2019/01/27 PHP
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
pymongo中group by的操作方法教程
2019/03/22 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
python读写csv文件方法详细总结
2019/07/05 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
企业治理工作自我评价
2013/09/26 职场文书
元旦晚会感言
2014/03/12 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL