-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
1 lines (1 loc) · 106 KB
/
index.html
1
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><title>Aixbox - 分享我的经历</title><meta name="keywords" content="编程,后端,代码"><meta name="author" content="Aixbox"><meta name="copyright" content="Aixbox"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#f7f9fe"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-touch-fullscreen" content="yes"><meta name="apple-mobile-web-app-title" content="Aixbox"><meta name="application-name" content="Aixbox"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="#f7f9fe"><meta name="description" content="Aixbox的个人博客网站,分享技术,分享编程,分享AI,分享后端,分享前端,分享github,分享开发"><meta name="keywords" content="Aixbox, 科技, 博客, IT, 个人网站, 代码, java, 编程, AI, 后端, 前端, github, 开发"><meta name="author" content="Aixbox"><meta property="og:type" content="website"><meta property="og:title" content="Aixbox"><meta property="og:url" content="http://www.aixbox.top/index.html"><meta property="og:site_name" content="Aixbox"><meta property="og:description"><meta property="og:locale" content="zh-CN"><meta property="og:image" content="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wx-avatar.jpg"><meta property="article:author" content="Aixbox"><meta property="article:tag" content="编程,后端,代码"><meta name="twitter:card" content="summary"><meta name="twitter:image" content="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wx-avatar.jpg"><meta name="description"><link rel="shortcut icon" href="/favicon.ico"><link rel="canonical" href="http://www.aixbox.top/"><link rel="preconnect" href="//cdn.cbd.int"><link rel="preconnect" href="//www.google-analytics.com" crossorigin=""><link rel="preconnect" href="//hm.baidu.com"><link rel="preconnect" href="//static.cloudflareinsights.com"><link rel="preconnect" href="//www.clarity.ms"><link rel="preconnect" href="//busuanzi.ibruce.info"><meta name="google-site-verification" content="LnKj4KilF61AIBeysoqKzhSjdFgRRUQsZMGcCe6-g2Q"><meta name="baidu-site-verification" content="codeva-YD8y2gsEyJ"><meta name="msvalidate.01" content="C1704743B5816524864900A849C246FE"><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.cbd.int/[email protected]/dist/snackbar.min.css" media="print" onload='this.media="all"'><link rel="stylesheet" href="https://cdn.cbd.int/@fancyapps/[email protected]/dist/fancybox/fancybox.css" media="print" onload='this.media="all"'><link rel="stylesheet" href="https://npm.elemecdn.com/[email protected]/swiper/swiper.min.css" media="print" onload='this.media="all"'><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?c6d20a9f351d804315b62f696deb3a84";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script><script async src="https://www.googletagmanager.com/gtag/js?id=G-2Y93F0C31R"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-2Y93F0C31R")</script><script defer data-pjax="data-pjax" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{"token": "33f6de63c5ea4f7b878f2782711c5a58"}"></script><script>!function(t,e,n,c,a,r,s){t[n]=t[n]||function(){(t[n].q=t[n].q||[]).push(arguments)},(r=e.createElement(c)).async=1,r.src="https://www.clarity.ms/tag/mo82ld8c9z",(s=e.getElementsByTagName(c)[0]).parentNode.insertBefore(r,s)}(window,document,"clarity","script")</script><script>const GLOBAL_CONFIG={linkPageTop:void 0,peoplecanvas:void 0,postHeadAiDescription:{enable:!0,gptName:"AnZhiYu",mode:"local",switchBtn:!1,btnLink:"https://afdian.net/item/886a79d4db6711eda42a52540025c377",randomNum:3,basicWordCount:1e3,key:"xxxx",Referer:"https://xx.xx/"},diytitle:{enable:!0,leaveTitle:"w(゚Д゚)w 不要走!再看看嘛!",backTitle:"♪(^∇^*)欢迎肥来!"},LA51:{enable:!0,ck:"3IdnE7k2s5Jxi0wE",LingQueMonitorID:"3IdnLaSSg2vJIhgi"},greetingBox:{enable:!0,default:"晚上好👋",list:[{greeting:"晚安😴",startTime:0,endTime:5},{greeting:"早上好鸭👋, 祝你一天好心情!",startTime:6,endTime:9},{greeting:"上午好👋, 状态很好,鼓励一下~",startTime:10,endTime:10},{greeting:"11点多啦, 在坚持一下就吃饭啦~",startTime:11,endTime:11},{greeting:"午安👋, 宝贝",startTime:12,endTime:14},{greeting:"🌈充实的一天辛苦啦!",startTime:14,endTime:18},{greeting:"19点喽, 奖励一顿丰盛的大餐吧🍔。",startTime:19,endTime:19},{greeting:"晚上好👋, 在属于自己的时间好好放松😌~",startTime:20,endTime:24}]},twikooEnvId:"https://twikoo-comment.aixbox.top",commentBarrageConfig:{enable:!0,maxBarrage:1,barrageTime:4e3,accessToken:"5416245a5414400c8b7ae0a19a6828bf",mailMd5:""},root:"/",preloader:{source:3},friends_vue_info:void 0,navMusic:!0,mainTone:{mode:"api",api:"https://blog-color.aixbox.top/api?img=",cover_change:!0},authorStatus:{skills:["🤖️ 数码科技爱好者"]},algolia:{appId:"H3JM0MM0LB",apiKey:"72fcafa7556ef7b3f5701cfdd9624108",indexName:"blog",hits:{per_page:6},languages:{input_placeholder:"输入关键词后按下回车查找",hits_empty:"找不到您查询的内容:${query}",hits_stats:"找到 ${hits} 条结果,用时 ${time} 毫秒"}},localSearch:void 0,translate:{defaultEncoding:2,translateDelay:0,msgToTraditionalChinese:"繁",msgToSimplifiedChinese:"简",rightMenuMsgToTraditionalChinese:"转为繁体",rightMenuMsgToSimplifiedChinese:"转为简体"},noticeOutdate:void 0,highlight:{plugin:"highlight.js",highlightCopy:!0,highlightLang:!0,highlightHeightLimit:330},copy:{success:"复制成功",error:"复制错误",noSupport:"浏览器不支持"},relativeDate:{homepage:!1,simplehomepage:!0,post:!1},runtime:"天",date_suffix:{just:"刚刚",min:"分钟前",hour:"小时前",day:"天前",month:"个月前"},copyright:{copy:!0,copyrightEbable:!1,limitCount:50,languages:{author:"作者: Aixbox",link:"链接: ",source:"来源: Aixbox",info:"著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。",copySuccess:"复制成功,复制和转载请标注本文地址"}},lightbox:"fancybox",Snackbar:{chs_to_cht:"你已切换为繁体",cht_to_chs:"你已切换为简体",day_to_night:"你已切换为深色模式",night_to_day:"你已切换为浅色模式",bgLight:"#425AEF",bgDark:"#1f1f1f",position:"top-center"},source:{justifiedGallery:{js:"https://cdn.cbd.int/[email protected]/dist/fjGallery.min.js",css:"https://cdn.cbd.int/[email protected]/dist/fjGallery.css"}},isPhotoFigcaption:!0,islazyload:!1,isAnchor:!0,shortcutKey:{enable:!0,delay:100,shiftDelay:200},autoDarkmode:!1}</script><script id="config-diff">var GLOBAL_CONFIG_SITE={configTitle:"Aixbox",title:"Aixbox",postAI:"",pageFillDescription:"",isPost:!1,isHome:!0,isHighlightShrink:!1,isToc:!1,postUpdate:"2024-11-23 13:48:20",postMainColor:""}</script><noscript><style>#nav{opacity:1}.justified-gallery img{opacity:1}#post-meta time,#recent-posts time{display:inline!important}</style></noscript><script>(e=>{e.saveToLocal={set:(e,t,o)=>{if(0===o)return;const a={value:t,expiry:Date.now()+864e5*o};localStorage.setItem(e,JSON.stringify(a))},get:e=>{const t=localStorage.getItem(e);if(!t)return;const o=JSON.parse(t);if(!(Date.now()>o.expiry))return o.value;localStorage.removeItem(e)}},e.getScript=(e,t={})=>new Promise(((o,a)=>{const n=document.createElement("script");n.src=e,n.async=!0,n.onerror=a,n.onload=n.onreadystatechange=function(){const e=this.readyState;e&&"loaded"!==e&&"complete"!==e||(n.onload=n.onreadystatechange=null,o())},Object.keys(t).forEach((e=>{n.setAttribute(e,t[e])})),document.head.appendChild(n)})),e.getCSS=(e,t=!1)=>new Promise(((o,a)=>{const n=document.createElement("link");n.rel="stylesheet",n.href=e,t&&(n.id=t),n.onerror=a,n.onload=n.onreadystatechange=function(){const e=this.readyState;e&&"loaded"!==e&&"complete"!==e||(n.onload=n.onreadystatechange=null,o())},document.head.appendChild(n)})),e.activateDarkMode=()=>{document.documentElement.setAttribute("data-theme","dark"),null!==document.querySelector('meta[name="theme-color"]')&&document.querySelector('meta[name="theme-color"]').setAttribute("content","#18171d")},e.activateLightMode=()=>{document.documentElement.setAttribute("data-theme","light"),null!==document.querySelector('meta[name="theme-color"]')&&document.querySelector('meta[name="theme-color"]').setAttribute("content","#f7f9fe")};const t=saveToLocal.get("theme"),o=(new Date).getHours();void 0===t?o<=6||o>=18?activateDarkMode():activateLightMode():"light"===t?activateLightMode():activateDarkMode();const a=saveToLocal.get("aside-status");void 0!==a&&("hide"===a?document.documentElement.classList.add("hide-aside"):document.documentElement.classList.remove("hide-aside"));/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)&&document.documentElement.classList.add("apple")})(window)</script><span id="fps"></span><link rel="stylesheet" href="/css/custom.css" media="defer" onload='this.media="all"'><link rel="stylesheet" href="https://npm.onmicrosoft.cn/[email protected]/lib/clock.min.css"><link rel="stylesheet" href="https://npm.elemecdn.com/hexo-filter-gitcalendar/lib/gitcalendar.css" media="print" onload='this.media="all"'><meta name="generator" content="Hexo 7.3.0"><link rel="alternate" href="/atom.xml" title="Aixbox" type="application/atom+xml"></head><body data-type="anzhiyu"><div id="web_bg"></div><div id="an_music_bg"></div><div id="loading-box" onclick="document.getElementById("loading-box").classList.add("loaded")"><div class="loading-bg"><img class="loading-img nolazyload" alt="加载头像" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/1111.png"><div class="loading-image-dot"></div></div></div><script>const preloader={endLoading:()=>{document.getElementById("loading-box").classList.add("loaded")},initLoading:()=>{document.getElementById("loading-box").classList.remove("loaded")}};window.addEventListener("load",(()=>{preloader.endLoading()})),setTimeout((function(){preloader.endLoading()}),1e4),document.addEventListener("pjax:send",(()=>{preloader.initLoading()})),document.addEventListener("pjax:complete",(()=>{preloader.endLoading()}))</script><link rel="stylesheet" href="https://cdn.cbd.int/[email protected]/progress_bar/progress_bar.css"><script async src="https://cdn.cbd.int/[email protected]/pace.min.js" data-pace-options="{ "restartOnRequestAfter":false,"eventLag":false}"></script><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background:url(https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/test/wallhaven-kxwxjq.webp) top/cover no-repeat"><nav id="nav"><div id="nav-group"><span id="blog_name"><div class="back-home-button"><i class="anzhiyufont anzhiyu-icon-grip-vertical"></i><div class="back-menu-list-groups"><div class="back-menu-list-group"><div class="back-menu-list-title">网页</div><div class="back-menu-list"><a class="back-menu-item" target="_blank" rel="noopener" href="https://blog.aixbox.top/" title="博客"><img class="back-menu-item-icon" src="/img/favicon.ico" alt="博客"><span class="back-menu-item-text">博客</span></a></div></div></div></div><a id="site-name" href="/" accesskey="h"><div class="title">Aixbox</div><i class="anzhiyufont anzhiyu-icon-house-chimney"></i></a></span><div class="mask-name-container"><div id="name-container"><a id="page-name" href="javascript:anzhiyu.scrollToDest(0, 500)">PAGE_NAME</a></div></div><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>文章</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/categories/"><i class="anzhiyufont anzhiyu-icon-shapes faa-tada" style="font-size:.9em"></i> <span>分类</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/tags/"><i class="anzhiyufont anzhiyu-icon-tags faa-tada" style="font-size:.9em"></i> <span>标签</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/essay/"><i class="anzhiyufont anzhiyu-icon-lightbulb faa-tada" style="font-size:.9em"></i> <span>闲言碎语</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>友链</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/link/"><i class="anzhiyufont anzhiyu-icon-link faa-tada" style="font-size:.9em"></i> <span>友人帐</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/comments/"><i class="anzhiyufont anzhiyu-icon-envelope faa-tada" style="font-size:.9em"></i> <span>留言板</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>我的</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/music/?id=948405236&server=netease"><i class="anzhiyufont anzhiyu-icon-music faa-tada" style="font-size:.9em"></i> <span>音乐馆</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/bangumis/"><i class="anzhiyufont anzhiyu-icon-bilibili faa-tada" style="font-size:.9em"></i> <span>追番页</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/album/"><i class="anzhiyufont anzhiyu-icon-images faa-tada" style="font-size:.9em"></i> <span>相册集</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>关于</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/equipment/"><i class="anzhiyufont anzhiyu-icon-dice-d20 faa-tada" style="font-size:.9em"></i> <span>我的装备</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/about/"><i class="anzhiyufont anzhiyu-icon-paper-plane faa-tada" style="font-size:.9em"></i> <span>关于本人</span></a></li><li><a class="site-page child faa-parent animated-hover" href="javascript:toRandomPost()"><i class="anzhiyufont anzhiyu-icon-shoe-prints1 faa-tada" style="font-size:.9em"></i> <span>随便逛逛</span></a></li></ul></div></div></div><div id="nav-right"><div class="nav-button only-home" id="travellings_button" title="随机前往一个开往项目网站"><a class="site-page" onclick="anzhiyu.totraveling()" title="随机前往一个开往项目网站" href="javascript:void(0);" rel="external nofollow" data-pjax-state="external"><i class="anzhiyufont anzhiyu-icon-train"></i></a></div><div class="nav-button" id="randomPost_button"><a class="site-page" onclick="toRandomPost()" title="随机前往一个文章" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-dice"></i></a></div><div class="nav-button" id="search-button"><a class="site-page social-icon search" href="javascript:void(0);" title="搜索🔍" accesskey="s"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i> <span>搜索</span></a></div><input id="center-console" type="checkbox"><label class="widget" for="center-console" title="中控台" onclick="anzhiyu.switchConsole()"><i class="left"></i><i class="widget center"></i><i class="widget right"></i></label><div id="console"><div class="console-card-group-reward"><ul class="reward-all console-card"><li class="reward-item"><a href="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Snipaste_2024-06-04_21-22-24.png" target="_blank"><img class="post-qr-code-img" alt="微信" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Snipaste_2024-06-04_21-22-24.png"></a><div class="post-qr-code-desc">微信</div></li><li class="reward-item"><a href="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Snipaste_2024-06-04_21-21-53.png" target="_blank"><img class="post-qr-code-img" alt="支付宝" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Snipaste_2024-06-04_21-21-53.png"></a><div class="post-qr-code-desc">支付宝</div></li></ul></div><div class="console-card-group"><div class="console-card-group-left"><div class="console-card" id="card-newest-comments"><div class="card-content"><div class="author-content-item-tips">互动</div><span class="author-content-item-title">最新评论</span></div><div class="aside-list"><span>正在加载中...</span></div></div></div><div class="console-card-group-right"><div class="console-card tags"><div class="card-content"><div class="author-content-item-tips">音乐</div><span class="author-content-item-title">灵魂的碰撞💥</span></div></div><div class="console-card history"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-box-archiv"></i><span>文章</span></div><div class="card-archives"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/07/"><span class="card-archive-list-date">七月 2024</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">5</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/06/"><span class="card-archive-list-date">六月 2024</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">4</span><span>篇</span></div></a></li></ul></div><hr></div></div></div><div class="button-group"><div class="console-btn-item"><a class="darkmode_switchbutton" title="显示模式切换" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-moon"></i></a></div><div class="console-btn-item" id="consoleHideAside" onclick="anzhiyu.hideAsideBtn()" title="边栏显示控制"><a class="asideSwitch"><i class="anzhiyufont anzhiyu-icon-arrows-left-right"></i></a></div><div class="console-btn-item on" id="consoleCommentBarrage" onclick="anzhiyu.switchCommentBarrage()" title="热评开关"><a class="commentBarrage"><i class="anzhiyufont anzhiyu-icon-message"></i></a></div><div class="console-btn-item" id="consoleMusic" onclick="anzhiyu.musicToggle()" title="音乐开关"><a class="music-switch"><i class="anzhiyufont anzhiyu-icon-music"></i></a></div><div class="console-btn-item" id="consoleKeyboard" onclick="anzhiyu.keyboardToggle()" title="快捷键开关"><a class="keyboard-switch"><i class="anzhiyufont anzhiyu-icon-keyboard"></i></a></div></div><div class="console-mask" onclick="anzhiyu.hideConsole()" href="javascript:void(0);"></div></div><div class="nav-button" id="nav-totop"><a class="totopbtn" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i><span id="percent" onclick="anzhiyu.scrollToDest(0,500)">0</span></a></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);" title="切换"><i class="anzhiyufont anzhiyu-icon-bars"></i></a></div></div></div></nav><div id="site-info"><h1 id="site-title">Aixbox</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon faa-parent animated-hover" href="https://github.com/Aixbox" target="_blank" title="Github"><i class="anzhiyufont anzhiyu-icon-github"></i></a><a class="social-icon faa-parent animated-hover" href="https://space.bilibili.com/121233879" target="_blank" title="BiliBili"><i class="anzhiyufont anzhiyu-icon-bilibili"></i></a><a class="social-icon faa-parent animated-hover" href="/atom.xml" target="_blank" title="rss"><i class="anzhiyufont anzhiyu-icon-rss"></i></a></div></div><div id="scroll-down"><i class="anzhiyufont anzhiyu-icon-angle-down scroll-down-effects"></i></div></header><main id="blog-container"><div class="bbTimeList container" id="bbTimeList"><i class="anzhiyufont anzhiyu-icon-jike bber-logo fontbold" onclick="pjax.loadUrl("/essay/");" title="即刻短文" href="javascript:void(0);" aria-hidden="true"></i><div class="swiper-container swiper-no-swiping essay_bar_swiper_container" id="bbtalk" tabindex="-1"><div class="swiper-wrapper" id="bber-talk" onclick="pjax.loadUrl("/essay/");"><a class="li-style swiper-slide" href="javascript:void(0);">音乐支持了参数设置自定义歌单</a></div></div><a class="bber-gotobb anzhiyufont anzhiyu-icon-circle-arrow-right" onclick="pjax.loadUrl("/essay/");" href="javascript:void(0);" title="查看全文"></a></div><script src="https://npm.elemecdn.com/[email protected]/swiper/swiper.min.js"></script><div id="home_top"><div class="swiper_container_card" style="height:auto;width:100%"><div id="bannerGroup"><div id="random-banner"><div class="banners-title"><div class="banners-title-big">生活明朗,</div><div class="banners-title-big">万物可爱。</div><div class="banners-title-small">aixbox.top</div></div><div id="skills-tags-group-all"><div class="tags-group-wrapper"><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#fff"><img class="no-lightbox" title="Java" src="https://bu.dusays.com/2023/04/09/643293b1184e9.jpg" size="60px" alt="Java"></div><div class="tags-group-icon" style="background:#57b6e6"><img class="no-lightbox" title="Docker" src="https://bu.dusays.com/2023/04/09/643293b0f0abe.png" size="60px" alt="Docker"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#4082c3"><img class="no-lightbox" title="Photoshop" src="https://bu.dusays.com/2022/12/15/639aa3a5c240e.png" size="60px" alt="Photoshop"></div><div class="tags-group-icon" style="background:#333"><img class="no-lightbox" title="Node" src="https://npm.elemecdn.com/[email protected]/img/svg/node-logo.svg" size="60px" alt="Node"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#2e3a41"><img class="no-lightbox" title="Webpack" src="https://bu.dusays.com/2023/04/09/643293b68026c.png" size="60px" alt="Webpack"></div><div class="tags-group-icon" style="background:#fff"><img class="no-lightbox" title="Pinia" src="https://npm.elemecdn.com/[email protected]/img/svg/pinia-logo.svg" size="60px" alt="Pinia"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#fff"><img class="no-lightbox" title="Python" src="https://bu.dusays.com/2023/04/09/643293b1230f7.png" size="60px" alt="Python"></div><div class="tags-group-icon" style="background:#937df7"><img class="no-lightbox" title="Vite" src="https://npm.elemecdn.com/[email protected]/img/svg/vite-logo.svg" size="60px" alt="Vite"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#4499e4"><img class="no-lightbox" title="Flutter" src="https://bu.dusays.com/2023/04/09/643293b1055c2.png" size="60px" alt="Flutter"></div><div class="tags-group-icon" style="background:#b8f0ae"><img class="no-lightbox" title="Vue" src="https://bu.dusays.com/2023/04/09/643293b6788bd.png" size="60px" alt="Vue"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#222"><img class="no-lightbox" title="React" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3NCAyMyAyMC40NjM0OCI+CiAgPHRpdGxlPlJlYWN0IExvZ288L3RpdGxlPgogIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIyLjA1IiBmaWxsPSIjNjFkYWZiIi8+CiAgPGcgc3Ryb2tlPSIjNjFkYWZiIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIi8+CiAgICA8ZWxsaXBzZSByeD0iMTEiIHJ5PSI0LjIiIHRyYW5zZm9ybT0icm90YXRlKDYwKSIvPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+CiAgPC9nPgo8L3N2Zz4K" size="60px" alt="React"></div><div class="tags-group-icon" style="background:#2c51db"><img class="no-lightbox" title="CSS3" src="https://bu.dusays.com/2022/12/15/639aa3a5c251e.png" size="60px" alt="CSS3"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#f7cb4f"><img class="no-lightbox" title="JS" src="https://bu.dusays.com/2023/04/09/643293b121f02.png" size="60px" alt="JS"></div><div class="tags-group-icon" style="background:#e9572b"><img class="no-lightbox" title="HTML" src="https://bu.dusays.com/2022/12/15/639aa3a5c241c.png" size="60px" alt="HTML"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#df5b40"><img class="no-lightbox" title="Git" src="https://bu.dusays.com/2023/04/09/643293b10ccdd.webp" size="60px" alt="Git"></div><div class="tags-group-icon" style="background:#e65164"><img class="no-lightbox" title="Apifox" src="https://bu.dusays.com/2022/11/19/6378d6458c6b6.png" size="60px" alt="Apifox"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#fff"><img class="no-lightbox" title="Java" src="https://bu.dusays.com/2023/04/09/643293b1184e9.jpg" size="60px" alt="Java"></div><div class="tags-group-icon" style="background:#57b6e6"><img class="no-lightbox" title="Docker" src="https://bu.dusays.com/2023/04/09/643293b0f0abe.png" size="60px" alt="Docker"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#4082c3"><img class="no-lightbox" title="Photoshop" src="https://bu.dusays.com/2022/12/15/639aa3a5c240e.png" size="60px" alt="Photoshop"></div><div class="tags-group-icon" style="background:#333"><img class="no-lightbox" title="Node" src="https://npm.elemecdn.com/[email protected]/img/svg/node-logo.svg" size="60px" alt="Node"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#2e3a41"><img class="no-lightbox" title="Webpack" src="https://bu.dusays.com/2023/04/09/643293b68026c.png" size="60px" alt="Webpack"></div><div class="tags-group-icon" style="background:#fff"><img class="no-lightbox" title="Pinia" src="https://npm.elemecdn.com/[email protected]/img/svg/pinia-logo.svg" size="60px" alt="Pinia"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#fff"><img class="no-lightbox" title="Python" src="https://bu.dusays.com/2023/04/09/643293b1230f7.png" size="60px" alt="Python"></div><div class="tags-group-icon" style="background:#937df7"><img class="no-lightbox" title="Vite" src="https://npm.elemecdn.com/[email protected]/img/svg/vite-logo.svg" size="60px" alt="Vite"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#4499e4"><img class="no-lightbox" title="Flutter" src="https://bu.dusays.com/2023/04/09/643293b1055c2.png" size="60px" alt="Flutter"></div><div class="tags-group-icon" style="background:#b8f0ae"><img class="no-lightbox" title="Vue" src="https://bu.dusays.com/2023/04/09/643293b6788bd.png" size="60px" alt="Vue"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#222"><img class="no-lightbox" title="React" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3NCAyMyAyMC40NjM0OCI+CiAgPHRpdGxlPlJlYWN0IExvZ288L3RpdGxlPgogIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIyLjA1IiBmaWxsPSIjNjFkYWZiIi8+CiAgPGcgc3Ryb2tlPSIjNjFkYWZiIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIi8+CiAgICA8ZWxsaXBzZSByeD0iMTEiIHJ5PSI0LjIiIHRyYW5zZm9ybT0icm90YXRlKDYwKSIvPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+CiAgPC9nPgo8L3N2Zz4K" size="60px" alt="React"></div><div class="tags-group-icon" style="background:#2c51db"><img class="no-lightbox" title="CSS3" src="https://bu.dusays.com/2022/12/15/639aa3a5c251e.png" size="60px" alt="CSS3"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#f7cb4f"><img class="no-lightbox" title="JS" src="https://bu.dusays.com/2023/04/09/643293b121f02.png" size="60px" alt="JS"></div><div class="tags-group-icon" style="background:#e9572b"><img class="no-lightbox" title="HTML" src="https://bu.dusays.com/2022/12/15/639aa3a5c241c.png" size="60px" alt="HTML"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background:#df5b40"><img class="no-lightbox" title="Git" src="https://bu.dusays.com/2023/04/09/643293b10ccdd.webp" size="60px" alt="Git"></div><div class="tags-group-icon" style="background:#e65164"><img class="no-lightbox" title="Apifox" src="https://bu.dusays.com/2022/11/19/6378d6458c6b6.png" size="60px" alt="Apifox"></div></div></div></div><a id="random-hover" href="javascript:toRandomPost()"><i class="anzhiyufont anzhiyu-icon-paper-plane"></i><div class="bannerText">随便逛逛<i class="anzhiyufont anzhiyu-icon-arrow-right"></i></div></a></div><div class="categoryGroup"><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-blue)"><a class="categoryButton blue" href="/categories/%E5%89%8D%E7%AB%AF/"><span class="categoryButtonText">前端</span><i class="anzhiyufont anzhiyu-icon-dove"></i></a></div><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-red)"><a class="categoryButton red" href="/categories/%E5%90%8E%E7%AB%AF/"><span class="categoryButtonText">后端</span><i class="anzhiyufont anzhiyu-icon-fire"></i></a></div><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-green)"><a class="categoryButton green" href="/categories/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"><span class="categoryButtonText">大模型</span><i class="anzhiyufont anzhiyu-icon-book"></i></a></div></div></div><div id="swiper_container_blog"><div class="blog-slider swiper-container-fade swiper-container-horizontal" id="swiper_container"><div class="blog-slider__wrp swiper-wrapper" style="transition-duration:0s"><div class="blog-slider__item swiper-slide" style="width:750px;opacity:1;transform:translate3d(0,0,0);transition-duration:0s"><a class="blog-slider__img" href="2024/07/05/SpringBoot项目docker部署/" title="SpringBoot项目docker部署"><img width="48" height="48" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-vqy2jp.webp" alt="图片" onerror="this.src=void 0,this.onerror=null"></a><div class="blog-slider__content"><span class="blog-slider__code">2024-07-05</span><a class="blog-slider__title" href="2024/07/05/SpringBoot项目docker部署/" alt="SpringBoot项目docker部署">SpringBoot项目docker部署</a><div class="blog-slider__text">1.检查pom文件在pom文件要有 12345678910111213141516171819202122232425&lt;parent&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt; &lt;version&gt;2.7.2&lt;/version&gt; &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt;&lt;/parent&gt;&lt;properties&gt; &lt;java.version&gt;1.8&lt;/java.version&gt;&lt;/properties&gt;&lt;plugin&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId ...</div><a class="blog-slider__button" href="2024/07/05/SpringBoot项目docker部署/" alt="SpringBoot项目docker部署">详情</a></div></div><div class="blog-slider__item swiper-slide" style="width:750px;opacity:1;transform:translate3d(0,0,0);transition-duration:0s"><a class="blog-slider__img" href="2024/07/06/Vite项目使用docker部署/" title="Vite项目使用docker部署"><img width="48" height="48" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-yxjvw7.png" alt="图片" onerror="this.src=void 0,this.onerror=null"></a><div class="blog-slider__content"><span class="blog-slider__code">2024-07-06</span><a class="blog-slider__title" href="2024/07/06/Vite项目使用docker部署/" alt="Vite项目使用docker部署">Vite项目使用docker部署</a><div class="blog-slider__text">1.修改生产环境配置 修改生产环境的配置,可以在项目中使用 import.meta.env.PROD import.meta.env.VITE_API_PREFIX判断当前环境使用什么配置。使用npm run build构建的项目在nginx运行时使用的url就是生产环境的url 2.构建项目 在项目根目录打开命令行,执行命令npm run build构建项目,构建完成后会生成dist目录 3.使用nginx运行测试 系统中首先要有一个nginx,此处不做介绍。将生成的dist文件夹放入html目录下,放置的位置可以在conf/nginx.conf中进行修改。 在nginx的根目录打开cmd运行命令start nginx.exe启动nginx,在浏览器访问http://127.0.0.1:8080/,能进入就是成功的 4.编写Dockerfile文件123456789101112131415161718192021222324# 使用轻量级的 Nginx 基础镜像FROM nginx:alpine#只要不把文件放到需要root权限才能访问的目录,就可以不执行这条 ...</div><a class="blog-slider__button" href="2024/07/06/Vite项目使用docker部署/" alt="Vite项目使用docker部署">详情</a></div></div><div class="blog-slider__item swiper-slide" style="width:750px;opacity:1;transform:translate3d(0,0,0);transition-duration:0s"><a class="blog-slider__img" href="2024/07/20/WebSocket使用-Springboot/" title="WebSocket使用-Springboot"><img width="48" height="48" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-3lw5g9.webp" alt="图片" onerror="this.src=void 0,this.onerror=null"></a><div class="blog-slider__content"><span class="blog-slider__code">2024-07-20</span><a class="blog-slider__title" href="2024/07/20/WebSocket使用-Springboot/" alt="WebSocket使用-Springboot">WebSocket使用-Springboot</a><div class="blog-slider__text">本文websocket使用netty实现,原因:因为netty提供有心跳组件,方便实现心跳检测 一、添加依赖在springboot项目中添加下面两个依赖 1234567891011&lt;!-- netty --&gt;&lt;dependency&gt; &lt;groupId&gt;io.netty&lt;/groupId&gt; &lt;artifactId&gt;netty-all&lt;/artifactId&gt; &lt;version&gt;$&#123;netty-all.version&#125;&lt;/version&gt;&lt;/dependency&gt;&lt;dependency&gt; &lt;groupId&gt;cn.hutool&lt;/groupId&gt; &lt;artifactId&gt;hutool-all&lt;/artifactId&gt; &lt;version&gt;$&#123;hutool.version&#125;&lt;/version&gt;&lt;/dependency&gt; ...</div><a class="blog-slider__button" href="2024/07/20/WebSocket使用-Springboot/" alt="WebSocket使用-Springboot">详情</a></div></div><div class="blog-slider__item swiper-slide" style="width:750px;opacity:1;transform:translate3d(0,0,0);transition-duration:0s"><a class="blog-slider__img" href="2024/07/10/hutool验证码使用/" title="hutool验证码使用"><img width="48" height="48" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-we56z6.png" alt="图片" onerror="this.src=void 0,this.onerror=null"></a><div class="blog-slider__content"><span class="blog-slider__code">2024-07-10</span><a class="blog-slider__title" href="2024/07/10/hutool验证码使用/" alt="hutool验证码使用">hutool验证码使用</a><div class="blog-slider__text">使用hutool + redis实现登录场景的验证 验证码控制器123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package com.aixbox.aioj.controller;import cn.hutool.captcha.CaptchaUtil;import cn.hutool.captcha.LineCaptcha;import cn.hutool.captcha.ShearCaptcha;import com.aixbox.aioj.common.BaseResponse;import com.aixbox.aioj.common.ErrorCode;import com.aixbox.aioj.common.ResultUtils;import com.aixbox.aioj.exception.BusinessException;import com.aixbo ...</div><a class="blog-slider__button" href="2024/07/10/hutool验证码使用/" alt="hutool验证码使用">详情</a></div></div></div><div class="blog-slider__pagination swiper-pagination-clickable swiper-pagination-bullets"></div></div><div id="topPostGroup"><div class="top-group-list-item"><div class="post_cover left_radius"><a href="2024/07/05/SpringBoot项目docker部署/" title="SpringBoot项目docker部署"><span class="top-group-text">荐</span><img class="post_bg" alt="SpringBoot项目docker部署" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-vqy2jp.webp" onerror="this.src=void 0,this.onerror=null"></a></div><div class="top-group-info"><a class="article-title" href="2024/07/05/SpringBoot项目docker部署/" title="SpringBoot项目docker部署">SpringBoot项目docker部署</a></div></div><div class="top-group-list-item"><div class="post_cover left_radius"><a href="2024/07/06/Vite项目使用docker部署/" title="Vite项目使用docker部署"><span class="top-group-text">荐</span><img class="post_bg" alt="Vite项目使用docker部署" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-yxjvw7.png" onerror="this.src=void 0,this.onerror=null"></a></div><div class="top-group-info"><a class="article-title" href="2024/07/06/Vite项目使用docker部署/" title="Vite项目使用docker部署">Vite项目使用docker部署</a></div></div><div class="top-group-list-item"><div class="post_cover left_radius"><a href="2024/07/20/WebSocket使用-Springboot/" title="WebSocket使用-Springboot"><span class="top-group-text">荐</span><img class="post_bg" alt="WebSocket使用-Springboot" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-3lw5g9.webp" onerror="this.src=void 0,this.onerror=null"></a></div><div class="top-group-info"><a class="article-title" href="2024/07/20/WebSocket使用-Springboot/" title="WebSocket使用-Springboot">WebSocket使用-Springboot</a></div></div><div class="top-group-list-item"><div class="post_cover left_radius"><a href="2024/07/10/hutool验证码使用/" title="hutool验证码使用"><span class="top-group-text">荐</span><img class="post_bg" alt="hutool验证码使用" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-we56z6.png" onerror="this.src=void 0,this.onerror=null"></a></div><div class="top-group-info"><a class="article-title" href="2024/07/10/hutool验证码使用/" title="hutool验证码使用">hutool验证码使用</a></div></div><div class="top-group-list-none"></div><div class="top-group-list-none"></div><div class="top-group-list-none"></div></div></div></div></div><script>function initBlogSlider(){var e=new Swiper(".blog-slider",{passiveListeners:!0,spaceBetween:30,effect:"fade",loop:!0,autoplay:{disableOnInteraction:!0,delay:3e3},mousewheel:{passive:!0},pagination:{el:".blog-slider__pagination",clickable:!0}}),n=document.getElementById("swiper_container");null!==n&&(n.onmouseenter=function(){e.autoplay.stop()},n.onmouseleave=function(){e.autoplay.start()})}setTimeout((()=>{initBlogSlider()}),100)</script><div class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div id="categoryBar"><div class="category-bar" id="category-bar"><div id="catalog-bar"><div id="catalog-list"><div class="catalog-list-item" id="首页"><a href="/">首页</a></div><div class="catalog-list-item" id="/categories/部署/"><a href="/categories/部署/">部署</a></div><div class="catalog-list-item" id="/categories/WebSocket/"><a href="/categories/WebSocket/">WebSocket</a></div><div class="catalog-list-item" id="/categories/后端/"><a href="/categories/后端/">后端</a></div><div class="catalog-list-item" id="/categories/工具/"><a href="/categories/工具/">工具</a></div><div class="catalog-list-item" id="/categories/WebSocket/长连接/"><a href="/categories/WebSocket/长连接/">长连接</a></div><div class="catalog-list-item" id="/categories/网站搭建/"><a href="/categories/网站搭建/">网站搭建</a></div><div class="catalog-list-item" id="/categories/前端/"><a href="/categories/前端/">前端</a></div></div><div class="category-bar-next" id="category-bar-next" onclick="anzhiyu.scrollCategoryBarToRight()"><i class="anzhiyufont anzhiyu-icon-angle-double-right"></i></div><a class="catalog-more" href="/categories/">更多</a></div></div></div><div class="recent-post-item lastestpost-item" onclick='pjax.loadUrl("/2024/07/20/WebSocket%E4%BD%BF%E7%94%A8-Springboot/")'><div class="post_cover left"><a href="/2024/07/20/WebSocket%E4%BD%BF%E7%94%A8-Springboot/" title="WebSocket使用-Springboot" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-3lw5g9.webp" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="WebSocket使用-Springboot" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">WebSocket</div><div class="article-categories-original">长连接</div><span class="newPost">最新</span><a class="unvisited-post" href="/2024/07/20/WebSocket%E4%BD%BF%E7%94%A8-Springboot/" title="WebSocket使用-Springboot">未读</a></div><a class="article-title" href="/2024/07/20/WebSocket%E4%BD%BF%E7%94%A8-Springboot/" title="WebSocket使用-Springboot">WebSocket使用-Springboot</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-20T15:30:00.000Z" title="发表于 2024-07-20 23:30:00" time="2024-07-20 23:30:00">2024-07-20</time><time class="time_hidden" datetime="2024-11-23T05:46:53.578Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E5%90%8E%E7%AB%AF/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 后端</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/07/20/WebSocket%E4%BD%BF%E7%94%A8-Springboot/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">本文websocket使用netty实现,原因:因为netty提供有心跳组件,方便实现心跳检测 一、添加依赖在springboot项目中添加下面两个依赖 1234567891011<!-- netty --><dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>${netty-all.version}</version></dependency><dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>${hutool.version}</version></dependency> ...</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/07/10/hutool%E9%AA%8C%E8%AF%81%E7%A0%81%E4%BD%BF%E7%94%A8/")'><div class="post_cover left"><a href="/2024/07/10/hutool%E9%AA%8C%E8%AF%81%E7%A0%81%E4%BD%BF%E7%94%A8/" title="hutool验证码使用" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-we56z6.png" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="hutool验证码使用" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">后端</div><a class="unvisited-post" href="/2024/07/10/hutool%E9%AA%8C%E8%AF%81%E7%A0%81%E4%BD%BF%E7%94%A8/" title="hutool验证码使用">未读</a></div><a class="article-title" href="/2024/07/10/hutool%E9%AA%8C%E8%AF%81%E7%A0%81%E4%BD%BF%E7%94%A8/" title="hutool验证码使用">hutool验证码使用</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-10T15:30:00.000Z" title="发表于 2024-07-10 23:30:00" time="2024-07-10 23:30:00">2024-07-10</time><time class="time_hidden" datetime="2024-11-23T05:46:53.578Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E5%90%8E%E7%AB%AF/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 后端</span></a><a class="article-meta__tags" href="/tags/hutool/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> hutool</span></a><a class="article-meta__tags" href="/tags/%E9%AA%8C%E8%AF%81%E7%A0%81/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 验证码</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/07/10/hutool%E9%AA%8C%E8%AF%81%E7%A0%81%E4%BD%BF%E7%94%A8/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">使用hutool + redis实现登录场景的验证 验证码控制器123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package com.aixbox.aioj.controller;import cn.hutool.captcha.CaptchaUtil;import cn.hutool.captcha.LineCaptcha;import cn.hutool.captcha.ShearCaptcha;import com.aixbox.aioj.common.BaseResponse;import com.aixbox.aioj.common.ErrorCode;import com.aixbox.aioj.common.ResultUtils;import com.aixbox.aioj.exception.BusinessException;import com.aixbo ...</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/07/06/Vite%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8docker%E9%83%A8%E7%BD%B2/")'><div class="post_cover left"><a href="/2024/07/06/Vite%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8docker%E9%83%A8%E7%BD%B2/" title="Vite项目使用docker部署" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-yxjvw7.png" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="Vite项目使用docker部署" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">部署</div><a class="unvisited-post" href="/2024/07/06/Vite%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8docker%E9%83%A8%E7%BD%B2/" title="Vite项目使用docker部署">未读</a></div><a class="article-title" href="/2024/07/06/Vite%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8docker%E9%83%A8%E7%BD%B2/" title="Vite项目使用docker部署">Vite项目使用docker部署</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-06T15:30:00.000Z" title="发表于 2024-07-06 23:30:00" time="2024-07-06 23:30:00">2024-07-06</time><time class="time_hidden" datetime="2024-11-23T05:46:53.574Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/docker/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> docker</span></a><a class="article-meta__tags" href="/tags/%E9%83%A8%E7%BD%B2/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 部署</span></a><a class="article-meta__tags" href="/tags/vite/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> vite</span></a><a class="article-meta__tags" href="/tags/%E5%89%8D%E7%AB%AF/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 前端</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/07/06/Vite%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8docker%E9%83%A8%E7%BD%B2/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">1.修改生产环境配置 修改生产环境的配置,可以在项目中使用 import.meta.env.PROD import.meta.env.VITE_API_PREFIX判断当前环境使用什么配置。使用npm run build构建的项目在nginx运行时使用的url就是生产环境的url 2.构建项目 在项目根目录打开命令行,执行命令npm run build构建项目,构建完成后会生成dist目录 3.使用nginx运行测试 系统中首先要有一个nginx,此处不做介绍。将生成的dist文件夹放入html目录下,放置的位置可以在conf/nginx.conf中进行修改。 在nginx的根目录打开cmd运行命令start nginx.exe启动nginx,在浏览器访问http://127.0.0.1:8080/,能进入就是成功的 4.编写Dockerfile文件123456789101112131415161718192021222324# 使用轻量级的 Nginx 基础镜像FROM nginx:alpine#只要不把文件放到需要root权限才能访问的目录,就可以不执行这条 ...</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/07/05/SpringBoot%E9%A1%B9%E7%9B%AEdocker%E9%83%A8%E7%BD%B2/")'><div class="post_cover left"><a href="/2024/07/05/SpringBoot%E9%A1%B9%E7%9B%AEdocker%E9%83%A8%E7%BD%B2/" title="SpringBoot项目docker部署" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-vqy2jp.webp" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="SpringBoot项目docker部署" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">部署</div><a class="unvisited-post" href="/2024/07/05/SpringBoot%E9%A1%B9%E7%9B%AEdocker%E9%83%A8%E7%BD%B2/" title="SpringBoot项目docker部署">未读</a></div><a class="article-title" href="/2024/07/05/SpringBoot%E9%A1%B9%E7%9B%AEdocker%E9%83%A8%E7%BD%B2/" title="SpringBoot项目docker部署">SpringBoot项目docker部署</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-05T15:30:00.000Z" title="发表于 2024-07-05 23:30:00" time="2024-07-05 23:30:00">2024-07-05</time><time class="time_hidden" datetime="2024-11-23T05:46:53.574Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E5%90%8E%E7%AB%AF/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 后端</span></a><a class="article-meta__tags" href="/tags/docker/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> docker</span></a><a class="article-meta__tags" href="/tags/%E9%83%A8%E7%BD%B2/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 部署</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/07/05/SpringBoot%E9%A1%B9%E7%9B%AEdocker%E9%83%A8%E7%BD%B2/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">1.检查pom文件在pom文件要有 12345678910111213141516171819202122232425<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath/> <!-- lookup parent from repository --></parent><properties> <java.version>1.8</java.version></properties><plugin> <groupId>org.springframework.boot</groupId> <artifactId ...</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/07/05/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81%E5%9F%9F%E5%90%8D%E5%AE%9E%E7%8E%B0%E5%8E%BB%E9%99%A4%E7%AB%AF%E5%8F%A3%E5%8F%B7/")'><div class="post_cover left"><a href="/2024/07/05/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81%E5%9F%9F%E5%90%8D%E5%AE%9E%E7%8E%B0%E5%8E%BB%E9%99%A4%E7%AB%AF%E5%8F%A3%E5%8F%B7/" title="反向代理+域名实现去除端口号" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-l315vy.png" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="反向代理+域名实现去除端口号" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">部署</div><a class="unvisited-post" href="/2024/07/05/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81%E5%9F%9F%E5%90%8D%E5%AE%9E%E7%8E%B0%E5%8E%BB%E9%99%A4%E7%AB%AF%E5%8F%A3%E5%8F%B7/" title="反向代理+域名实现去除端口号">未读</a></div><a class="article-title" href="/2024/07/05/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81%E5%9F%9F%E5%90%8D%E5%AE%9E%E7%8E%B0%E5%8E%BB%E9%99%A4%E7%AB%AF%E5%8F%A3%E5%8F%B7/" title="反向代理+域名实现去除端口号">反向代理+域名实现去除端口号</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-05T15:30:00.000Z" title="发表于 2024-07-05 23:30:00" time="2024-07-05 23:30:00">2024-07-05</time><time class="time_hidden" datetime="2024-11-23T05:46:53.578Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 反向代理</span></a><a class="article-meta__tags" href="/tags/%E5%9F%9F%E5%90%8D/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 域名</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/07/05/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81%E5%9F%9F%E5%90%8D%E5%AE%9E%E7%8E%B0%E5%8E%BB%E9%99%A4%E7%AB%AF%E5%8F%A3%E5%8F%B7/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">1.安装运维面板 到官网复制curl命令,在命令行执行curl命令 2.配置反向代理 在linux的运维面板配置 在云服务商配置 3.浏览器访问 在浏览器直接访问域名blog.aixbox.top,访问到的就是你配置的反向代理的端口了(注意,域名需要在你linux服务器提供商处备案)</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/06/12/npm%E5%9B%BE%E5%BA%8A%E3%80%81githubActions%E3%80%81picgo%E3%80%81imagine/")'><div class="post_cover left"><a href="/2024/06/12/npm%E5%9B%BE%E5%BA%8A%E3%80%81githubActions%E3%80%81picgo%E3%80%81imagine/" title="npm图床+githubActions+picgo+imagine" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-9dzy7w.webp" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="npm图床+githubActions+picgo+imagine" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">工具</div><a class="unvisited-post" href="/2024/06/12/npm%E5%9B%BE%E5%BA%8A%E3%80%81githubActions%E3%80%81picgo%E3%80%81imagine/" title="npm图床+githubActions+picgo+imagine">未读</a></div><a class="article-title" href="/2024/06/12/npm%E5%9B%BE%E5%BA%8A%E3%80%81githubActions%E3%80%81picgo%E3%80%81imagine/" title="npm图床+githubActions+picgo+imagine">npm图床+githubActions+picgo+imagine</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-06-12T15:30:00.000Z" title="发表于 2024-06-12 23:30:00" time="2024-06-12 23:30:00">2024-06-12</time><time class="time_hidden" datetime="2024-11-23T05:46:53.578Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E5%9B%BE%E5%BA%8A/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 图床</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/06/12/npm%E5%9B%BE%E5%BA%8A%E3%80%81githubActions%E3%80%81picgo%E3%80%81imagine/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">1.创建仓库并克隆1.1创建仓库创建一个github仓库存放图片,选择public和ADD README file 1.2克隆仓库到本地进入想要存放仓库的文件夹,在地址栏输入cmd打开cmd面板,输入下面的命令克隆仓库,二选一 12345# [username]为gtihub用户名,[AssetsRepo]为仓库名# 如果使用ssh,你有多个github账号使用ssh,需要额外设置,可以看我的另外一篇文章git clone [email protected]:[username]/[AssetsRepo].git# 使用https方式git clone https://github.com/[username]/[AssetsRepo].git 2.创建npm账号并创建npm token2.1 注册账号进入注册页注册npm账号 2.2 验证邮箱完成邮箱验证,注册完成后进入账号管理界面: 头像 -> Account,拉倒最上方,你会看到You have not verified your email address字样的提示,点击以后按提示步骤验证你的邮箱。 2.3创建 ...</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/06/12/%E5%A4%9A%E4%B8%AAgithub%E8%B4%A6%E5%8F%B7%E4%BD%BF%E7%94%A8ssh/")'><div class="post_cover left"><a href="/2024/06/12/%E5%A4%9A%E4%B8%AAgithub%E8%B4%A6%E5%8F%B7%E4%BD%BF%E7%94%A8ssh/" title="多个github账号使用ssh" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-q6vemq.webp" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="多个github账号使用ssh" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">工具</div><a class="unvisited-post" href="/2024/06/12/%E5%A4%9A%E4%B8%AAgithub%E8%B4%A6%E5%8F%B7%E4%BD%BF%E7%94%A8ssh/" title="多个github账号使用ssh">未读</a></div><a class="article-title" href="/2024/06/12/%E5%A4%9A%E4%B8%AAgithub%E8%B4%A6%E5%8F%B7%E4%BD%BF%E7%94%A8ssh/" title="多个github账号使用ssh">多个github账号使用ssh</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-06-12T15:30:00.000Z" title="发表于 2024-06-12 23:30:00" time="2024-06-12 23:30:00">2024-06-12</time><time class="time_hidden" datetime="2024-11-23T05:46:53.578Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/ssh/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> ssh</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/06/12/%E5%A4%9A%E4%B8%AAgithub%E8%B4%A6%E5%8F%B7%E4%BD%BF%E7%94%A8ssh/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">需求多个github账号需要使用ssh 解决方法1.1查看目录查看c盘 -> 用户 -> 你的账号 -> .ssh,如果没有.ssh文件夹就手动创建,查看里面有没有密钥,有的话可以使用 1.2 创建ssh密钥这里我们要创建两个ssh密钥 输入ssh-keygen -t rsa创建ssh密钥, 第一个位置要求输入密钥保存的位置,把括号里的路径复制后粘贴就行,第二次创建的时候可以在改为C:\Users\he/.ssh/id_rsa_two 密码可以设置也可以不设置 1.3github设置ssh密钥复制~/.ssh/id_rsa.pub下的内容,进入github设置ssh:头像 -> Settings -> SSH and GPG keys -> New SSH key。 title随便填,key填刚复制的公钥~/.ssh/id_rsa.pub 1.4在 ssh-agent 上注册新的 SSH 密钥在终端输入下面的命令 12ssh-add ~/.ssh/id_rsassh-add ~/.ssh/id_rsa_t ...</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/06/12/%E8%BD%BB%E9%87%8F%E7%BA%A7%E8%AF%B7%E6%B1%82%E7%AD%96%E7%95%A5%E5%BA%93alova/")'><div class="post_cover left"><a href="/2024/06/12/%E8%BD%BB%E9%87%8F%E7%BA%A7%E8%AF%B7%E6%B1%82%E7%AD%96%E7%95%A5%E5%BA%93alova/" title="alova请求库携带cookie的方式" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-jxeoep.png" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="alova请求库携带cookie的方式" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">前端</div><a class="unvisited-post" href="/2024/06/12/%E8%BD%BB%E9%87%8F%E7%BA%A7%E8%AF%B7%E6%B1%82%E7%AD%96%E7%95%A5%E5%BA%93alova/" title="alova请求库携带cookie的方式">未读</a></div><a class="article-title" href="/2024/06/12/%E8%BD%BB%E9%87%8F%E7%BA%A7%E8%AF%B7%E6%B1%82%E7%AD%96%E7%95%A5%E5%BA%93alova/" title="alova请求库携带cookie的方式">alova请求库携带cookie的方式</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-06-12T15:30:00.000Z" title="发表于 2024-06-12 23:30:00" time="2024-06-12 23:30:00">2024-06-12</time><time class="time_hidden" datetime="2024-11-23T05:46:53.578Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E5%89%8D%E7%AB%AF/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 前端</span></a><a class="article-meta__tags" href="/tags/js/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> js</span></a><a class="article-meta__tags" href="/tags/%E8%AF%B7%E6%B1%82%E5%BA%93/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 请求库</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/06/12/%E8%BD%BB%E9%87%8F%E7%BA%A7%E8%AF%B7%E6%B1%82%E7%AD%96%E7%95%A5%E5%BA%93alova/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">1.首先写一个request.ts 2.在请求拦截器配置config.credentials = 'include',这样就可以携带cookie了 示例代码: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import { createAlova } from 'alova'import VueHook from 'alova/vue'import GlobalFetch from 'alova/GlobalFetch'import { Message } from '@arco-design/web-vue'function getToken() { let tempToken = '' return { get() { if (t ...</div></div></div><div class="recent-post-item" onclick='pjax.loadUrl("/2024/06/08/%E5%BB%BA%E7%AB%99%E5%8F%82%E8%80%83%E6%96%87%E7%AB%A0%E3%80%81%E5%8D%9A%E5%AE%A2/")'><div class="post_cover left"><a href="/2024/06/08/%E5%BB%BA%E7%AB%99%E5%8F%82%E8%80%83%E6%96%87%E7%AB%A0%E3%80%81%E5%8D%9A%E5%AE%A2/" title="建站参考文章、博客" style="display:flex;height:100%"><img class="post_bg" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wallhaven-rr2j87.webp" onerror='this.onerror=null,this.src="/img/404.jpg"' alt="建站参考文章、博客" style="pointer-events:none"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><div class="article-categories-original">网站搭建</div><a class="unvisited-post" href="/2024/06/08/%E5%BB%BA%E7%AB%99%E5%8F%82%E8%80%83%E6%96%87%E7%AB%A0%E3%80%81%E5%8D%9A%E5%AE%A2/" title="建站参考文章、博客">未读</a></div><a class="article-title" href="/2024/06/08/%E5%BB%BA%E7%AB%99%E5%8F%82%E8%80%83%E6%96%87%E7%AB%A0%E3%80%81%E5%8D%9A%E5%AE%A2/" title="建站参考文章、博客">建站参考文章、博客</a></div><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-days" style="font-size:15px;display:none"></i><span class="article-meta-label">发表于</span><time datetime="2024-06-08T03:54:00.000Z" title="发表于 2024-06-08 11:54:00" time="2024-06-08 11:54:00">2024-06-08</time><time class="time_hidden" datetime="2024-11-23T05:46:53.578Z" title="更新于 2024-11-23 13:46:53" time="2024-11-23 13:46:53">2024-11-23</time></span><span class="article-meta tags"><a class="article-meta__tags" href="/tags/%E7%BD%91%E7%AB%99%E6%90%AD%E5%BB%BA/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 网站搭建</span></a><a class="article-meta__tags" href="/tags/%E6%8E%A8%E8%8D%90%E5%8D%9A%E5%AE%A2/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 推荐博客</span></a><a class="article-meta__tags" href="/tags/%E5%AE%9E%E7%94%A8%E6%96%87%E7%AB%A0/" event.cancelbubble onclick="window.event.cancelBubble=!0"><span><i class="anzhiyufont anzhiyu-icon-hashtag"></i> 实用文章</span></a></span><span class="article-meta"><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-comments"></i><a class="twikoo-count" href="/2024/06/08/%E5%BB%BA%E7%AB%99%E5%8F%82%E8%80%83%E6%96%87%E7%AB%A0%E3%80%81%E5%8D%9A%E5%AE%A2/#post-comment" tabindex="-1"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></a> <span class="article-meta-label">条评论</span></span></div><div class="content">建站参考文章npm图床1 npm图床2npm图床3npm图床4 12345可用的图床链接https://cdn.jsdelivr.net/gh/xingpingcn/picx-images-hosting@master/20230525/logo(2).ln5ua8psy9s.webp https://raw.githubusercontent.com/xingpingcn/picx-images-hosting/master/20230420/image.7grs1emx5ok0.pnghttps://jsd.cdn.zzko.cn/gh/xingpingcn/website.comments/app.js rss atom使用 atom.xml模版 订阅网站rss github徽标 博客魔改教程 博客主题 原版主题 加速 时钟教程1 时钟教程2 在线编辑图片工具 即时设计 一台电脑配置多个github账号使用ssh emoji大全 一为api 表情速查 wordPress主题 algolia搜索 github评论系统 giscus 建站参考博客jovehawking ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><div class="toPageGroup"><input id="toPageText" oninput='value=value.replace(/[^0-9]/g,"")' maxlength="3" onkeyup='this.value=this.value.replace(/[^u4e00-u9fa5w]/g,"")' aria-label="toPage"><a id="toPageButton" onclick="anzhiyu.toPage()"><i class="anzhiyufont anzhiyu-icon-angles-right" style="font-weight:inherit;font-size:1rem"></i></a></div></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="card-content"><div class="author-info__sayhi" id="author-info__sayhi" onclick="anzhiyu.changeSayHelloText()"></div><div class="author-info-avatar"><img class="avatar-img" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wx-avatar.jpg" onerror='this.onerror=null,this.src="/img/friend_404.gif"' alt="avatar"><div class="author-status"><img class="g-status" src="https://bu.dusays.com/2021/01/15/dcf30b34409bc.png" alt="status"></div></div><div class="author-info__description"><div style="line-height:1.38;margin:.6rem 0;text-align:justify;color:rgba(255,255,255,.8)">这有关于<b style="color:#fff">产品、设计、开发</b>相关的问题和看法,还有<b style="color:#fff">文章翻译</b>和<b style="color:#fff">分享</b>。</div><div style="line-height:1.38;margin:.6rem 0;text-align:justify;color:rgba(255,255,255,.8)">相信你可以在这里找到对你有用的<b style="color:#fff">知识</b>和<b style="color:#fff">教程</b>。</div></div><div class="author-info__bottom-group"><a class="author-info__bottom-group-left" href="/"><h1 class="author-info__name">Aixbox</h1><div class="author-info__desc">分享我的经历</div></a><div class="card-info-social-icons is-center"><a class="social-icon faa-parent animated-hover" href="https://github.com/Aixbox" target="_blank" title="Github"><i class="anzhiyufont anzhiyu-icon-github"></i></a><a class="social-icon faa-parent animated-hover" href="https://space.bilibili.com/121233879" target="_blank" title="BiliBili"><i class="anzhiyufont anzhiyu-icon-bilibili"></i></a><a class="social-icon faa-parent animated-hover" href="/atom.xml" target="_blank" title="rss"><i class="anzhiyufont anzhiyu-icon-rss"></i></a></div></div></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-bullhorn anzhiyu-shake"></i><span>公告</span></div><div class="announcement_content">欢迎来看我的博客鸭~</div></div><div class="card-widget anzhiyu-right-widget" id="card-wechat"><div id="flip-wrapper"><div id="flip-content"><div class="face" style="background:url(https://bu.dusays.com/2023/01/13/63c02edf44033.png) center center/100% no-repeat"></div><div class="back face" style="background:url(https://gcore.jsdelivr.net/gh/Aixboxi/MyGoodRep2@main/blog/gongzhonghao.png) center center/100% no-repeat"></div></div></div></div><div class="card-widget card-categories"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-folder-open"></i> <span>分类</span></div><ul class="card-category-list" id="aside-cat-list"><li class="card-category-list-item"><a class="card-category-list-link" href="/categories/WebSocket/"><span class="card-category-list-name">WebSocket</span><span class="card-category-list-count">1</span></a><ul class="card-category-list child"><li class="card-category-list-item"><a class="card-category-list-link" href="/categories/WebSocket/%E9%95%BF%E8%BF%9E%E6%8E%A5/"><span class="card-category-list-name">长连接</span><span class="card-category-list-count">1</span></a></li></ul></li><li class="card-category-list-item"><a class="card-category-list-link" href="/categories/%E5%89%8D%E7%AB%AF/"><span class="card-category-list-name">前端</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item"><a class="card-category-list-link" href="/categories/%E5%90%8E%E7%AB%AF/"><span class="card-category-list-name">后端</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item"><a class="card-category-list-link" href="/categories/%E5%B7%A5%E5%85%B7/"><span class="card-category-list-name">工具</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item"><a class="card-category-list-link" href="/categories/%E7%BD%91%E7%AB%99%E6%90%AD%E5%BB%BA/"><span class="card-category-list-name">网站搭建</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item"><a class="card-category-list-link" href="/categories/%E9%83%A8%E7%BD%B2/"><span class="card-category-list-name">部署</span><span class="card-category-list-count">3</span></a></li></ul></div><div class="sticky_layout"><div class="card-widget"><div class="card-tags"><div class="item-headline"></div><div class="card-tag-cloud"><a href="/tags/docker/" style="font-size:1.05rem">docker<sup>2</sup></a><a href="/tags/hutool/" style="font-size:1.05rem">hutool<sup>1</sup></a><a href="/tags/js/" style="font-size:1.05rem">js<sup>1</sup></a><a href="/tags/ssh/" style="font-size:1.05rem">ssh<sup>1</sup></a><a href="/tags/vite/" style="font-size:1.05rem">vite<sup>1</sup></a><a href="/tags/%E5%89%8D%E7%AB%AF/" style="font-size:1.05rem">前端<sup>2</sup></a><a href="/tags/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/" style="font-size:1.05rem">反向代理<sup>1</sup></a><a href="/tags/%E5%90%8E%E7%AB%AF/" style="font-size:1.05rem">后端<sup>3</sup></a><a href="/tags/%E5%9B%BE%E5%BA%8A/" style="font-size:1.05rem">图床<sup>1</sup></a><a href="/tags/%E5%9F%9F%E5%90%8D/" style="font-size:1.05rem">域名<sup>1</sup></a><a href="/tags/%E5%AE%9E%E7%94%A8%E6%96%87%E7%AB%A0/" style="font-size:1.05rem">实用文章<sup>1</sup></a><a href="/tags/%E6%8E%A8%E8%8D%90%E5%8D%9A%E5%AE%A2/" style="font-size:1.05rem">推荐博客<sup>1</sup></a><a href="/tags/%E7%BD%91%E7%AB%99%E6%90%AD%E5%BB%BA/" style="font-size:1.05rem">网站搭建<sup>1</sup></a><a href="/tags/%E8%AF%B7%E6%B1%82%E5%BA%93/" style="font-size:1.05rem">请求库<sup>1</sup></a><a href="/tags/%E9%83%A8%E7%BD%B2/" style="font-size:1.05rem">部署<sup>2</sup></a><a href="/tags/%E9%AA%8C%E8%AF%81%E7%A0%81/" style="font-size:1.05rem">验证码<sup>1</sup></a></div></div><hr><div class="card-archives"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/07/"><span class="card-archive-list-date">七月 2024</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">5</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/06/"><span class="card-archive-list-date">六月 2024</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">4</span><span>篇</span></div></a></li></ul></div><hr><div class="card-webinfo"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="webinfo-item-title"><i class="anzhiyufont anzhiyu-icon-file-lines"></i><div class="item-name">文章总数 :</div></div><div class="item-count">9</div></div><div class="webinfo-item"><div class="webinfo-item-title"><i class="anzhiyufont anzhiyu-icon-stopwatch"></i><div class="item-name">建站天数 :</div></div><div class="item-count" id="runtimeshow" data-publishdate="2024-06-04T00:00:00.000Z"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div><div class="webinfo-item"><div class="webinfo-item-title"><i class="anzhiyufont anzhiyu-icon-font"></i><div class="item-name">全站字数 :</div></div><div class="item-count">6.2k</div></div><div class="webinfo-item"><div class="webinfo-item-title"><i class="anzhiyufont anzhiyu-icon-universal-access"></i><div class="item-name">总访客数 :</div></div><div class="item-count" id="busuanzi_value_site_uv"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div><div class="webinfo-item"><div class="webinfo-item-title"><i class="anzhiyufont anzhiyu-icon-square-poll-vertical"></i><div class="item-name">总访问量 :</div></div><div class="item-count" id="busuanzi_value_site_pv"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div><div class="webinfo-item"><div class="webinfo-item-title"><i class="anzhiyufont anzhiyu-icon-hourglass-start"></i><div class="item-name">最后更新 :</div></div><div class="item-count" id="last-push-date" data-lastpushdate="2024-11-23T05:48:20.381Z"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div id="footer_deal"><a class="deal_link" href="mailto:[email protected]" title="email"><i class="anzhiyufont anzhiyu-icon-envelope"></i></a><a class="deal_link" href="/atom.xml" title="RSS"><i class="anzhiyufont anzhiyu-icon-rss"></i></a><img class="footer_mini_logo" title="返回顶部" alt="返回顶部" onclick="anzhiyu.scrollToDest(0,500)" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/wx-avatar.jpg" size="50px"><a class="deal_link" target="_blank" rel="noopener" href="https://github.com/Aixbox" title="Github"><i class="anzhiyufont anzhiyu-icon-github"></i></a><a class="deal_link" target="_blank" rel="noopener" href="https://space.bilibili.com/121233879" title="Bilibili"><i class="anzhiyufont anzhiyu-icon-bilibili"></i></a></div><div id="workboard"><img class="workSituationImg boardsign" src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Aixbox-myz-blue.svg" alt="摸鱼~" title="摸鱼~"><div id="runtimeTextTip"></div></div><p id="ghbdages"><a class="github-badge" target="_blank" href="https://hexo.io/" style="margin-inline:5px" data-title="博客框架为Hexo_v5.4.0" title="博客框架为Hexo_v5.4.0"><img src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Frame-Hexo-blue.svg" alt="博客框架为Hexo_v5.4.0"></a><a class="github-badge" target="_blank" href="https://blog.anheyu.com/" style="margin-inline:5px" data-title="本站使用AnZhiYu主题" title="本站使用AnZhiYu主题"><img src="https://npm.elemecdn.com/[email protected]/img/Theme-AnZhiYu-2E67D3.svg" alt="本站使用AnZhiYu主题"></a><a class="github-badge" target="_blank" href="https://www.huaweicloud.com/" style="margin-inline:5px" data-title="本站使用华为购买的域名" title="本站使用华为购买的域名"><img src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/domain-Huawei-yellow.svg" alt="本站使用华为购买的域名"></a><a class="github-badge" target="_blank" href="https://icp.gov.moe/?keyword=20246613" style="margin-inline:5px" data-title="本站已备案" title="本站已备案"><img src="https://gcore.jsdelivr.net/gh/Aixboxi/MyGoodRep2@main/blog/20246613pink.svg" alt="本站已备案"></a><a class="github-badge" target="_blank" href="https://github.com/" style="margin-inline:5px" data-title="本站项目由Github托管" title="本站项目由Github托管"><img src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Source-Github-pink.svg" alt="本站项目由Github托管"></a><a class="github-badge" target="_blank" href="https://vercel.com/" style="margin-inline:5px" data-title="本站使用Vercel加速" title="本站使用Vercel加速"><img src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Speed-vercel-red.svg" alt="本站使用Vercel加速"></a><a class="github-badge" target="_blank" href="https://www.aixbox.top/" style="margin-inline:5px" data-title="本站由Aixbox制作" title="本站由Aixbox制作"><img src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/make-Aixbox-yellow.svg" alt="本站由Aixbox制作"></a></p></div><div id="footer-bar"><div class="footer-bar-links"><div class="footer-bar-left"><div id="footer-bar-tips"><div class="copyright">©2024 By <a class="footer-bar-link" href="/" title="Aixbox" target="_blank">Aixbox</a></div></div><div id="footer-type-tips"></div><div class="js-pjax"><script>function subtitleType(){getScript("https://yijuzhan.com/api/word.php?m=js").then((()=>{const t=str[0];{const e="出自 "+str[1],p=[];p.unshift(t,e),window.typed=new Typed("#footer-type-tips",{strings:p,startDelay:300,typeSpeed:150,loop:!0,backSpeed:50})}}))}"function"==typeof Typed?subtitleType():getScript("https://cdn.cbd.int/[email protected]/dist/typed.umd.js").then(subtitleType)</script></div></div><div class="footer-bar-right"><a class="footer-bar-link" target="_blank" rel="noopener" href="https://icp.gov.moe/?keyword=20246613" title="萌ICP备20246613号">萌ICP备20246613号</a></div></div></div></footer><script defer>var hasShownPopup=sessionStorage.getItem("sessionNegotiatePopupShown");hasShownPopup||setTimeout((()=>{anzhiyuPopupManager&&anzhiyuPopupManager.enqueuePopup("协议提醒助手","查看本站为你的个人隐私做出的努力","/privacy",4e3),sessionStorage.setItem("sessionNegotiatePopupShown","true")}),1e3)</script></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="sidebar-site-data site-data is-center"><a href="/archives/" title="archive"><div class="headline">文章</div><div class="length-num">9</div></a><a href="/tags/" title="tag"><div class="headline">标签</div><div class="length-num">16</div></a><a href="/categories/" title="category"><div class="headline">分类</div><div class="length-num">7</div></a></div><span class="sidebar-menu-item-title">功能</span><div class="sidebar-menu-item"><a class="darkmode_switchbutton menu-child" href="javascript:void(0);" title="显示模式"><i class="anzhiyufont anzhiyu-icon-circle-half-stroke"></i><span>显示模式</span></a></div><div class="back-menu-list-groups"><div class="back-menu-list-group"><div class="back-menu-list-title">网页</div><div class="back-menu-list"><a class="back-menu-item" target="_blank" rel="noopener" href="https://blog.aixbox.top/" title="博客"><img class="back-menu-item-icon" src="/img/favicon.ico" alt="博客"><span class="back-menu-item-text">博客</span></a></div></div></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>文章</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/categories/"><i class="anzhiyufont anzhiyu-icon-shapes faa-tada" style="font-size:.9em"></i> <span>分类</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/tags/"><i class="anzhiyufont anzhiyu-icon-tags faa-tada" style="font-size:.9em"></i> <span>标签</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/essay/"><i class="anzhiyufont anzhiyu-icon-lightbulb faa-tada" style="font-size:.9em"></i> <span>闲言碎语</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>友链</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/link/"><i class="anzhiyufont anzhiyu-icon-link faa-tada" style="font-size:.9em"></i> <span>友人帐</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/comments/"><i class="anzhiyufont anzhiyu-icon-envelope faa-tada" style="font-size:.9em"></i> <span>留言板</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>我的</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/music/?id=948405236&server=netease"><i class="anzhiyufont anzhiyu-icon-music faa-tada" style="font-size:.9em"></i> <span>音乐馆</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/bangumis/"><i class="anzhiyufont anzhiyu-icon-bilibili faa-tada" style="font-size:.9em"></i> <span>追番页</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/album/"><i class="anzhiyufont anzhiyu-icon-images faa-tada" style="font-size:.9em"></i> <span>相册集</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>关于</span></a><ul class="menus_item_child"><li><a class="site-page child faa-parent animated-hover" href="/equipment/"><i class="anzhiyufont anzhiyu-icon-dice-d20 faa-tada" style="font-size:.9em"></i> <span>我的装备</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/about/"><i class="anzhiyufont anzhiyu-icon-paper-plane faa-tada" style="font-size:.9em"></i> <span>关于本人</span></a></li><li><a class="site-page child faa-parent animated-hover" href="javascript:toRandomPost()"><i class="anzhiyufont anzhiyu-icon-shoe-prints1 faa-tada" style="font-size:.9em"></i> <span>随便逛逛</span></a></li></ul></div></div><span class="sidebar-menu-item-title">标签</span><div class="card-tags"><div class="item-headline"></div><div class="card-tag-cloud"><a href="/tags/docker/" style="font-size:.88rem">docker<sup>2</sup></a><a href="/tags/hutool/" style="font-size:.88rem">hutool<sup>1</sup></a><a href="/tags/js/" style="font-size:.88rem">js<sup>1</sup></a><a href="/tags/ssh/" style="font-size:.88rem">ssh<sup>1</sup></a><a href="/tags/vite/" style="font-size:.88rem">vite<sup>1</sup></a><a href="/tags/%E5%89%8D%E7%AB%AF/" style="font-size:.88rem">前端<sup>2</sup></a><a href="/tags/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/" style="font-size:.88rem">反向代理<sup>1</sup></a><a href="/tags/%E5%90%8E%E7%AB%AF/" style="font-size:.88rem">后端<sup>3</sup></a><a href="/tags/%E5%9B%BE%E5%BA%8A/" style="font-size:.88rem">图床<sup>1</sup></a><a href="/tags/%E5%9F%9F%E5%90%8D/" style="font-size:.88rem">域名<sup>1</sup></a><a href="/tags/%E5%AE%9E%E7%94%A8%E6%96%87%E7%AB%A0/" style="font-size:.88rem">实用文章<sup>1</sup></a><a href="/tags/%E6%8E%A8%E8%8D%90%E5%8D%9A%E5%AE%A2/" style="font-size:.88rem">推荐博客<sup>1</sup></a><a href="/tags/%E7%BD%91%E7%AB%99%E6%90%AD%E5%BB%BA/" style="font-size:.88rem">网站搭建<sup>1</sup></a><a href="/tags/%E8%AF%B7%E6%B1%82%E5%BA%93/" style="font-size:.88rem">请求库<sup>1</sup></a><a href="/tags/%E9%83%A8%E7%BD%B2/" style="font-size:.88rem">部署<sup>2</sup></a><a href="/tags/%E9%AA%8C%E8%AF%81%E7%A0%81/" style="font-size:.88rem">验证码<sup>1</sup></a></div></div><hr></div></div><div id="keyboard-tips"><div class="keyboardTitle">博客快捷键</div><div class="keybordList"><div class="keybordItem"><div class="keyGroup"><div class="key">shift K</div></div><div class="keyContent"><div class="content">关闭快捷键功能</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift A</div></div><div class="keyContent"><div class="content">打开/关闭中控台</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift M</div></div><div class="keyContent"><div class="content">播放/暂停音乐</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift D</div></div><div class="keyContent"><div class="content">深色/浅色显示模式</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift S</div></div><div class="keyContent"><div class="content">站内搜索</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift R</div></div><div class="keyContent"><div class="content">随机访问</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift H</div></div><div class="keyContent"><div class="content">返回首页</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift F</div></div><div class="keyContent"><div class="content">友链鱼塘</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift L</div></div><div class="keyContent"><div class="content">友链页面</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift P</div></div><div class="keyContent"><div class="content">关于本站</div></div></div><div class="keybordItem"><div class="keyGroup"><div class="key">shift I</div></div><div class="keyContent"><div class="content">原版/本站右键菜单</div></div></div></div></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="简繁转换">繁</button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="anzhiyufont anzhiyu-icon-circle-half-stroke"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="anzhiyufont anzhiyu-icon-arrows-left-right"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="anzhiyufont anzhiyu-icon-gear"></i></button><a id="switch-commentBarrage" href="javascript:anzhiyu.switchCommentBarrage();" title="开关弹幕"><i class="anzhiyufont anzhiyu-icon-danmu"></i></a><button id="go-up" type="button" title="回到顶部"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><div id="nav-music"><a id="nav-music-hoverTips" onclick="anzhiyu.musicToggle()" accesskey="m">播放音乐</a><div id="console-music-bg"></div><meting-js id="948405236" server="netease" type="playlist" mutex="true" preload="none" theme="var(--anzhiyu-main)" data-lrctype="0" order="random" volume="0.7"></meting-js></div><div id="algolia-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><button class="search-close-button"><i class="anzhiyufont anzhiyu-icon-xmark"></i></button></nav><div class="search-wrap"><div id="algolia-search-input"></div><hr><div id="algolia-search-results"><div id="algolia-hits"></div><div id="algolia-pagination"></div><div id="algolia-info"><div class="algolia-stats"></div><div class="algolia-poweredBy"></div></div></div></div></div><div id="search-mask"></div></div><div id="rightMenu"><div class="rightMenu-group rightMenu-small"><div class="rightMenu-item" id="menu-backward"><i class="anzhiyufont anzhiyu-icon-arrow-left"></i></div><div class="rightMenu-item" id="menu-forward"><i class="anzhiyufont anzhiyu-icon-arrow-right"></i></div><div class="rightMenu-item" id="menu-refresh"><i class="anzhiyufont anzhiyu-icon-arrow-rotate-right" style="font-size:1rem"></i></div><div class="rightMenu-item" id="menu-top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></div></div><div class="rightMenu-group rightMenu-line rightMenuPlugin"><div class="rightMenu-item" id="menu-copytext"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制选中文本</span></div><div class="rightMenu-item" id="menu-pastetext"><i class="anzhiyufont anzhiyu-icon-paste"></i><span>粘贴文本</span></div><a class="rightMenu-item" id="menu-commenttext"><i class="anzhiyufont anzhiyu-icon-comment-medical"></i><span>引用到评论</span></a><div class="rightMenu-item" id="menu-newwindow"><i class="anzhiyufont anzhiyu-icon-window-restore"></i><span>新窗口打开</span></div><div class="rightMenu-item" id="menu-copylink"><i class="anzhiyufont anzhiyu-icon-link"></i><span>复制链接地址</span></div><div class="rightMenu-item" id="menu-copyimg"><i class="anzhiyufont anzhiyu-icon-images"></i><span>复制此图片</span></div><div class="rightMenu-item" id="menu-downloadimg"><i class="anzhiyufont anzhiyu-icon-download"></i><span>下载此图片</span></div><div class="rightMenu-item" id="menu-newwindowimg"><i class="anzhiyufont anzhiyu-icon-window-restore"></i><span>新窗口打开图片</span></div><div class="rightMenu-item" id="menu-search"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span>站内搜索</span></div><div class="rightMenu-item" id="menu-searchBaidu"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span>百度搜索</span></div><div class="rightMenu-item" id="menu-music-toggle"><i class="anzhiyufont anzhiyu-icon-play"></i><span>播放音乐</span></div><div class="rightMenu-item" id="menu-music-back"><i class="anzhiyufont anzhiyu-icon-backward"></i><span>切换到上一首</span></div><div class="rightMenu-item" id="menu-music-forward"><i class="anzhiyufont anzhiyu-icon-forward"></i><span>切换到下一首</span></div><div class="rightMenu-item" id="menu-music-playlist" onclick="window.open("https://music.163.com/#/playlist?id=948405236", "_blank");" style="display:none"><i class="anzhiyufont anzhiyu-icon-radio"></i><span>查看所有歌曲</span></div><div class="rightMenu-item" id="menu-music-copyMusicName"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制歌名</span></div></div><div class="rightMenu-group rightMenu-line rightMenuOther"><a class="rightMenu-item menu-link" id="menu-randomPost"><i class="anzhiyufont anzhiyu-icon-shuffle"></i><span>随便逛逛</span></a><a class="rightMenu-item menu-link" href="/categories/"><i class="anzhiyufont anzhiyu-icon-cube"></i><span>博客分类</span></a><a class="rightMenu-item menu-link" href="/tags/"><i class="anzhiyufont anzhiyu-icon-tags"></i><span>文章标签</span></a></div><div class="rightMenu-group rightMenu-line rightMenuOther"><a class="rightMenu-item" id="menu-copy" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制地址</span></a><a class="rightMenu-item" id="menu-commentBarrage" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-message"></i><span class="menu-commentBarrage-text">关闭热评</span></a><a class="rightMenu-item" id="menu-darkmode" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-circle-half-stroke"></i><span class="menu-darkmode-text">深色模式</span></a><a class="rightMenu-item" id="menu-translate" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-language"></i><span>轉為繁體</span></a></div></div><div id="rightmenu-mask"></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.cbd.int/@fancyapps/[email protected]/dist/fancybox/fancybox.umd.js"></script><script src="https://cdn.cbd.int/[email protected]/instantpage.js" type="module"></script><script src="https://cdn.cbd.int/[email protected]/dist/snackbar.min.js"></script><script>function panguFn(){"object"==typeof pangu?pangu.autoSpacingPage():getScript("https://cdn.cbd.int/[email protected]/dist/browser/pangu.min.js").then((()=>{pangu.autoSpacingPage()}))}function panguInit(){GLOBAL_CONFIG_SITE.isPost&&panguFn()}document.addEventListener("DOMContentLoaded",panguInit)</script><canvas id="universe"></canvas><script async src="https://npm.elemecdn.com/[email protected]/dark/dark.js"></script><script>var HoldLog=console.log;console.log=function(){};let now1=new Date;queueMicrotask((()=>{const o=function(){HoldLog.apply(console,arguments)},n=new Date("06/04/2024 00:00:00");now1.setTime(now1.getTime()+250);const c=(now1-n)/1e3/60/60/24,e=["欢迎使用Aixbox!","生活明朗, 万物可爱","\n\n ████╗ ██═╗ ██╗ ██╗ █████╗ ██████╗ ██╗ ██╗\n ██╔══██╗ ██║ ╚██╗██╔╝ ██╔══██╗ ██╔═══██╗ ╚██╗██╔╝\n ███████║ ██║ ╚███╔╝ ██████╔╝ ██║ ██║ ╚███╔╝ \n ██╔══██║ ██║ ██╔██╗ ██╔══██╗ ██║ ██║ ██╔██╗ \n ██║ ██║ ██║ ██╔╝ ██╗ ██████╔╝ ╚██████╔╝ ██╔╝ ██╗\n ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝\n \n ","已上线",Math.floor(c),"天","©2024 By Aixbox V1.6.12"],t=["NCC2-036","调用前置摄像头拍照成功,识别为【小笨蛋】.","Photo captured: ","🤪"];setTimeout(o.bind(console,`\n%c${e[0]} %c ${e[1]} %c ${e[2]} %c${e[3]}%c ${e[4]}%c ${e[5]}\n\n%c ${e[6]}\n`,"color:#425AEF","","color:#425AEF","color:#425AEF","","color:#425AEF","")),setTimeout(o.bind(console,`%c ${t[0]} %c ${t[1]} %c \n${t[2]} %c\n${t[3]}\n`,"color:white; background-color:#4fd953","","",'background:url("https://npm.elemecdn.com/[email protected]/img/post/common/tinggge.gif") no-repeat;font-size:450%')),setTimeout(o.bind(console,"%c WELCOME %c 你好,小笨蛋.","color:white; background-color:#4f90d9","")),setTimeout(console.warn.bind(console,"%c ⚡ Powered by %c 你正在访问 Aixbox 的博客.","color:white; background-color:#f0ad4e","")),setTimeout(o.bind(console,"%c W23-12 %c 你已打开控制台.","color:white; background-color:#4f90d9","")),setTimeout(console.warn.bind(console,"%c S013-782 %c 你现在正处于监控中.","color:white; background-color:#d9534f",""))}))</script><script async src="/anzhiyu/random.js"></script><script async>!function(){var e,t,n,i,r,o=new Date("06/04/2024 00:00:00"),a=new Date;setInterval((()=>{!function(){a=new Date,r=a.getHours();var l=(a-o)/1e3/60/60/24;e=Math.floor(l);var u=(a-o)/1e3/60/60-24*e;t=Math.floor(u),1==String(t).length&&(t="0"+t);var s=(a-o)/1e3/60-1440*e-60*t;n=Math.floor(s),1==String(n).length&&(n="0"+n);var c=(a-o)/1e3-86400*e-3600*t-60*n;i=Math.round(c),1==String(i).length&&(i="0"+i)}(),function(){if(!document.getElementById("footer"))return;let o="";if(r<18&&r>=9)o=`本站居然运行了 ${e} 天<span id='runtime'> ${t} 小时 ${n} 分 ${i} 秒 </span><i class='anzhiyufont anzhiyu-icon-heartbeat' style='color:red'></i>`;else{let r=document.querySelector("#workboard .workSituationImg");null!=r&&(r.src="https://gcore.jsdelivr.net/gh/Aixboxi/picgo_assets1@main/blog_pic/Aixbox-myz-blue.svg",r.title="摸鱼~",r.alt="摸鱼~"),o=`本站居然运行了 ${e} 天<span id='runtime'> ${t} 小时 ${n} 分 ${i} 秒 </span><i class='anzhiyufont anzhiyu-icon-heartbeat' style='color:red'></i>`}document.getElementById("runtimeTextTip")&&(document.getElementById("runtimeTextTip").innerHTML=o)}()}),1e3)}()</script><script src="https://cdn.cbd.int/[email protected]/dist/algoliasearch-lite.umd.js"></script><script src="https://cdn.cbd.int/[email protected]/dist/instantsearch.production.min.js"></script><script src="/js/search/algolia.js"></script><div class="js-pjax"><script>(()=>{const t=()=>{const t=document.querySelectorAll("#recent-posts .article-title");let o=[];return t.forEach((t=>{o.push(t.getAttribute("href"))})),o},o=()=>{const o=()=>{twikoo.getCommentsCount({envId:"https://twikoo-comment.aixbox.top",region:"ap-shanghai",urls:t(),includeReply:!1}).then((function(t){document.querySelectorAll("#recent-posts .twikoo-count").forEach(((o,e)=>{o.textContent=t[e].count}))})).catch((function(t){console.log(t)}))};"object"==typeof twikoo?o():getScript("https://cdn.cbd.int/[email protected]/dist/twikoo.all.min.js").then(o)};window.pjax?o():window.addEventListener("load",o)})()</script><script>function subtitleType(){fetch("https://v1.hitokoto.cn").then((t=>t.json())).then((t=>{{const e="出自 "+t.from,n=["生活明朗,万物可爱,人间值得,未来可期."];n.unshift(t.hitokoto,e),window.typed=new Typed("#subtitle",{strings:n,startDelay:300,typeSpeed:150,loop:!0,backSpeed:50})}}))}"function"==typeof Typed?subtitleType():getScript("https://cdn.cbd.int/[email protected]/dist/typed.umd.js").then(subtitleType)</script><input type="hidden" name="page-type" id="page-type" value="anzhiyu"></div><script>window.addEventListener("load",(()=>{const e=e=>{let t="";if(e.length)for(let n=0;n<e.length;n++){t+="<div class='aside-list-item'>";{const a="src";t+=`<a href='${e[n].url}' class='thumbnail'><img ${a}='${e[n].avatar}' alt='${e[n].nick}'><div class='name'><span>${e[n].nick} </span></div></a>`}t+=`<div class='content'>\n <a class='comment' href='${e[n].url}' title='${e[n].content}'>${e[n].content}</a>\n <time datetime="${e[n].date}">${anzhiyu.diffDate(e[n].date,!0)}</time></div>\n </div>`}else t+="没有评论";let n=document.querySelector("#card-newest-comments .aside-list");n&&(n.innerHTML=t),window.lazyLoadInstance&&window.lazyLoadInstance.update(),window.pjax&&window.pjax.refresh(n)},t=()=>{if(document.querySelector("#card-newest-comments .aside-list")){const t=saveToLocal.get("twikoo-newest-comments");t?e(JSON.parse(t)):(()=>{const t=()=>{twikoo.getRecentComments({envId:"https://twikoo-comment.aixbox.top",region:"ap-shanghai",pageSize:6,includeReply:!0}).then((function(t){const n=t.map((e=>{return{content:(t=e.comment,""===t||(t=(t=(t=(t=t.replace(/<img.*?src="(.*?)"?[^\>]+>/gi,"[图片]")).replace(/<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi,"[链接]")).replace(/<pre><code>.*?<\/pre>/gi,"[代码]")).replace(/<[^>]+>/g,"")).length>150&&(t=t.substring(0,150)+"..."),t),avatar:e.avatar,nick:e.nick,url:e.url+"#"+e.id,date:new Date(e.created).toISOString()};var t}));saveToLocal.set("twikoo-newest-comments",JSON.stringify(n),10/1440),e(n)})).catch((function(e){document.querySelector("#card-newest-comments .aside-list").textContent="无法获取评论,请确认相关配置是否正确"}))};"object"==typeof twikoo?t():getScript("https://cdn.cbd.int/[email protected]/dist/twikoo.all.min.js").then(t)})()}};t(),document.addEventListener("pjax:complete",t)}))</script><script async data-pjax src="https://npm.elemecdn.com/[email protected]/bubble/bubble.js"></script><script>var visitorMail="[email protected]"</script><script async data-pjax src="https://cdn.cbd.int/[email protected]/waterfall/waterfall.js"></script><script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/qrcodejs/1.0.0/qrcode.min.js"></script><script src="/js/anzhiyu/right_click_menu.js"></script><link rel="stylesheet" href="https://cdn.cbd.int/[email protected]/icon/ali_iconfont_css.css"><script async src="/js/sakura.js"></script><script async src="/js/fps.js"></script><script src="https://cdn.cbd.int/[email protected]/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful=!0,POWERMODE.shake=!1,POWERMODE.mobile=!0,document.body.addEventListener("input",POWERMODE)</script><script id="click-show-text" src="https://cdn.cbd.int/[email protected]/dist/click-show-text.min.js" data-mobile="true" data-text="I,LOVE,YOU,AIXBOX,A,I,X,B,O,X" data-fontsize="15px" data-random="true" async></script><link rel="stylesheet" href="https://cdn.cbd.int/[email protected]/aplayer/APlayer.min.css" media="print" onload='this.media="all"'><script src="https://cdn.cbd.int/[email protected]/js/APlayer.min.js"></script><script src="https://cdn.cbd.int/[email protected]/assets/js/Meting2.min.js"></script><script src="https://cdn.cbd.int/[email protected]/pjax.min.js"></script><script>let pjaxSelectors=['meta[property="og:image"]','meta[property="og:title"]','meta[property="og:url"]','meta[property="og:type"]','meta[property="og:site_name"]','meta[property="og:description"]',"head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"];var pjax=new Pjax({elements:'a:not([target="_blank"])',selectors:pjaxSelectors,cacheBust:!1,analytics:!0,scrollRestoration:!1});document.addEventListener("pjax:send",(function(){if(anzhiyu.removeGlobalFnEvent("pjax"),anzhiyu.removeGlobalFnEvent("themeChange"),document.getElementById("rightside").classList.remove("rightside-show"),window.aplayers)for(let e=0;e<window.aplayers.length;e++)window.aplayers[e].options.fixed||window.aplayers[e].destroy();"object"==typeof typed&&typed.destroy();const e=document.body.classList;e.contains("read-mode")&&e.remove("read-mode")})),document.addEventListener("pjax:complete",(function(){window.refreshFn(),document.querySelectorAll("script[data-pjax]").forEach((e=>{const t=document.createElement("script"),o=e.text||e.textContent||e.innerHTML||"";Array.from(e.attributes).forEach((e=>t.setAttribute(e.name,e.value))),t.appendChild(document.createTextNode(o)),e.parentNode.replaceChild(t,e)})),GLOBAL_CONFIG.islazyload&&window.lazyLoadInstance.update(),"function"==typeof panguInit&&panguInit(),"function"==typeof gtag&>ag("config","G-2Y93F0C31R",{page_path:window.location.pathname}),"object"==typeof _hmt&&_hmt.push(["_trackPageview",window.location.pathname]),"function"==typeof loadMeting&&document.getElementsByClassName("aplayer").length&&loadMeting(),"object"==typeof Prism&&Prism.highlightAll()})),document.addEventListener("pjax:error",(e=>{404===e.request.status&&pjax.loadUrl("/404.html")}))</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><script charset="UTF-8" src="https://cdn.cbd.int/[email protected]/accesskey/accesskey.js"></script><div id="greetingBox"></div></div><div id="popup-window"><div class="popup-window-title">通知</div><div class="popup-window-divider"></div><div class="popup-window-content"><div class="popup-tip">你好呀</div><div class="popup-link"><i class="anzhiyufont anzhiyu-icon-arrow-circle-right"></i></div></div></div><script data-pjax>function butterfly_clock_anzhiyu_injector_config(){var e=document.getElementsByClassName("sticky_layout")[0];console.log("已挂载butterfly_clock_anzhiyu"),e&&e.insertAdjacentHTML("afterbegin",'<div class="card-widget card-clock"><div class="card-glass"><div class="card-background"><div class="card-content"><div id="hexo_electric_clock"><img class="entered loading" id="card-clock-loading" src="https://npm.onmicrosoft.cn/[email protected]/lib/loading.gif" style="height: 120px; width: 100%;" data-ll-status="loading"/></div></div></div></div></div>')}for(var elist="null".split(","),cpage=location.pathname,epage="/",qweather_key="d6531ba3fea7430c8717e7aca48fac04",gaud_map_key="fc5f729896ad475ce76e0e3dc3e1e137",baidu_ak_key="undefined",flag=0,clock_rectangle="113.34532,23.15624",clock_default_rectangle_enable="false",i=0;i<elist.length;i++)cpage.includes(elist[i])&&flag++;("all"===epage&&0==flag||epage===cpage)&&butterfly_clock_anzhiyu_injector_config()</script><script src="https://ip.taobao.com/outGetIpInfo"></script><script data-pjax src="https://npm.onmicrosoft.cn/[email protected]/lib/clock.min.js"></script><script data-pjax src="https://npm.elemecdn.com/hexo-filter-gitcalendar/lib/gitcalendar.js"></script><script data-pjax>function gitcalendar_injector_config(){document.getElementById("gitZone").insertAdjacentHTML("afterbegin",'<container><style>#git_container{min-height: 280px}@media screen and (max-width:650px) {#git_container{min-height: 0px}}</style><div id="git_loading" style="width:10%;height:100%;margin:0 auto;display: block;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50" xml:space="preserve"><path fill="#d0d0d0" d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z" transform="rotate(275.098 25 25)"><animatetransform attributeType="xml" attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="0.6s" repeatCount="indefinite"></animatetransform></path></svg><style>#git_container{display: none;}</style></div><div id="git_container"></div></container>'),console.log("已挂载gitcalendar")}document.getElementById("gitZone")&&"/about/"===location.pathname&&(gitcalendar_injector_config(),GitCalendarInit("https://github-calendar-api.aixbox.top/api?Aixbox",["#d9e0df","#c6e0dc","#a8dcd4","#9adcd2","#89ded1","#77e0d0","#5fdecb","#47dcc6","#39dcc3","#1fdabe","#00dab9"],"Aixbox"))</script></body></html>