详解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 相关文章推荐
菜单效果
Oct 14 Javascript
javascript 读取xml,写入xml 实现代码
Jul 10 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
Mar 18 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
用原生JS对AJAX做简单封装的实例代码
Jul 13 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
Node+Express+MongoDB实现登录注册功能实例
Apr 23 Javascript
js读取本地文件的实例
Dec 22 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
基于JavaScript实现留言板功能
Mar 16 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
理解Koa2中的async&amp;await的用法
2018/02/05 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
python实现拼图小游戏
2020/02/22 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
旅游管理毕业生自荐信
2013/11/05 职场文书
建筑专业毕业生推荐信
2013/11/21 职场文书
保护环境倡议书300字
2014/05/19 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书