详解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 相关文章推荐
计算新浪Weibo消息长度(还可以输入119字)
Jul 02 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
Aug 07 Javascript
javascript实现禁止复制网页内容汇总
Dec 30 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
js监听input输入框值的实时变化实例
Jan 26 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
浅谈React Native 中组件的生命周期
Sep 08 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
分享一款超好用的JavaScript 打包压缩工具
Apr 26 Javascript
详解JavaScript 的执行机制
Sep 18 Javascript
Webpack的Loader和Plugin的区别
Nov 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
PHP环境搭建最新方法
2006/09/05 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
pyenv命令管理多个Python版本
2017/03/26 Python
python先序遍历二叉树问题
2017/11/10 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
Python学习之time模块的基本使用
2021/01/17 Python
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
保荐人的岗位职责
2013/11/19 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技