详解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获取函数名称、函数参数、对象属性名称的代码实例
Apr 12 Javascript
微信开发 微信授权详解
Oct 21 Javascript
AngularJS自定义服务与fliter的混合使用
Nov 24 Javascript
Bootstrap基本组件学习笔记之导航(10)
Dec 07 Javascript
vue.js异步上传文件前后端实现代码
Aug 22 Javascript
javaScript字符串工具类StringUtils详解
Dec 08 Javascript
基于zTree树形菜单的使用实例
Dec 25 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
Apr 29 Javascript
JavaScript实现页面中录音功能的方法
Jun 04 Javascript
基于JavaScript 实现拖放功能
Sep 12 Javascript
手把手教你如何编译打包video.js
Dec 09 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php短域名转换为实际域名函数
2011/01/17 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
JS原生数据双向绑定实现代码
2017/08/14 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
python算法表示概念扫盲教程
2017/04/13 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
小溪流的歌教学反思
2014/02/13 职场文书
cf收人广告词
2014/03/14 职场文书
校园文化标语
2014/06/18 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
MySQL去除密码登录告警的方法
2022/04/20 MySQL
详解OpenCV曝光融合
2022/04/29 Python