详解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 浏览器检测代码精简版
Mar 04 Javascript
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
js如何获取object类型里的键值
Feb 18 Javascript
php和js对数据库图片进行等比缩放示例
Apr 28 Javascript
JavaScript中实现单体模式分享
Jan 29 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
jquery自定义表格样式
Nov 23 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
Mar 11 Javascript
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
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 处理图片的类实现代码
2009/10/23 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
用Python shell简化开发
2018/08/08 Python
python 多个参数不为空校验方法
2019/02/14 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
运动会稿件300字
2014/02/14 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
股权转让协议书
2014/04/12 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
详解pytorch创建tensor函数
2022/03/22 Python
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript