详解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 相关文章推荐
javascript div 弹出可拖动窗口
Feb 26 Javascript
firefox插件Firebug的使用教程
Jan 02 Javascript
教您去掉ie网页加载进度条的方法
Dec 09 Javascript
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
解析Javascript中难以理解的11个问题
Dec 09 Javascript
js报$ is not a function 的问题的解决方法
Jan 20 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
AngularJS中$http的交互问题
Mar 29 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
微信小程序列表时间戳转换实现过程解析
Oct 12 Javascript
一篇文章了解正则表达式的替换技巧
Feb 24 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生成随机数或者字符串的代码
2008/09/05 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
自己的js工具_Form 封装
2009/08/21 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
wxpython 学习笔记 第一天
2009/03/16 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
Django实现快速分页的方法实例
2017/10/22 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
八年级语文教学反思
2014/02/11 职场文书
实习推荐信
2014/05/10 职场文书
教师个人发展总结
2015/02/11 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
求职导师推荐信范文
2015/03/27 职场文书
安全温馨提示语大全
2015/07/14 职场文书
宿舍管理制度范本
2015/08/07 职场文书
卫生主题班会
2015/08/14 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
五年级作文之成长
2019/09/16 职场文书
Python IO文件管理的具体使用
2022/03/20 Python
mysql数据库隔离级别详解
2022/06/16 MySQL