详解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 相关文章推荐
利用进制转换压缩数字函数分享
Jan 02 Javascript
SeaJS入门教程系列之使用SeaJS(二)
Mar 03 Javascript
js检测网络是否具体连接功能的代码
May 23 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
Aug 14 Javascript
原生JS实现LOADING效果
Mar 16 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
javascript之Array 数组对象详解
Jun 07 Javascript
ES6 Promise对象概念与用法分析
Apr 01 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
jQuery Dom元素操作技巧
Feb 04 jQuery
JS实现中英文混合文字溢出友好截取功能
Aug 06 Javascript
VUE简单的定时器实时刷新的实现方法
Jan 20 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
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
jquery json 实例代码
2010/12/02 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
js中事件对象和事件委托的介绍
2019/01/21 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
python判断windows系统是32位还是64位的方法
2015/05/11 Python
python Django的web开发实例(入门)
2019/07/31 Python
解决Django no such table: django_session的问题
2020/04/07 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
中职应届生会计求职信
2013/10/23 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
大学生村官任职感言
2014/01/09 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
中国好声音华少广告词
2014/03/17 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
领导干部考核评语
2015/01/04 职场文书
小学教师自我评价
2015/03/04 职场文书
个人求职自荐信范文
2015/03/06 职场文书
党小组考察意见
2015/06/02 职场文书