详解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基本对象
Jan 11 Javascript
javascript Zifa FormValid 0.1表单验证 代码打包下载
Jun 08 Javascript
浅谈js的setInterval事件
Dec 05 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
Jan 08 Javascript
JavaScript中的包装对象介绍
Jan 27 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
js仿小米手机上下滑动效果
Feb 05 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
element el-input directive数字进行控制
Oct 11 Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 Javascript
JS检测浏览器开发者工具是否打开的方法详解
Oct 02 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
Oct 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/11/14 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
Python Celery多队列配置代码实例
2019/11/22 Python
python装饰器的特性原理详解
2019/12/25 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
python实现粒子群算法
2020/10/15 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
集体婚礼证婚词
2014/01/13 职场文书
成考报名单位证明范本
2014/01/16 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
环保建议书作文
2014/03/12 职场文书
药品营销策划方案
2014/06/15 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
青岛市的收音机研制与生产
2022/04/07 无线电