正因为我们是前端,所以代码更需要优雅
彩土氛褐1. 基础1.1 图片加载优化对于非文章类的大图片先进行一遍压缩使用各种压缩网站就可以然后对于各种图片最好都转换为为webp格式相对于传统格式能降低大小大概四成左右1.2 gzip压缩gzip是针对文本类型进行压缩的例如html、js、css、txt等格式可以在nginx处打开http {gzip on;gzip_buffers 32 4K;gzip_comp_level 6;gzip_types text/plain application/javascript text/css;}2. 首屏渲染Vue类型的博客的内容是通过实时加载去渲染的如果蜘蛛只获取了html而没有去加载js的话实际是没有内容的。有几种解决方案。将vue渲染成静态文件每次增加新文章都重新渲染一遍然后上传到服务器上。优点是加载快但是调整插件什么的比较麻烦。实时判断爬虫然后进行服务器端渲染。我这里主要讲一下服务端渲染。首先是nginx判断爬虫:http {...server {...location ... {if ($http_user_agent ~* Sogou web spider|BingPreview|baidu|Baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator|bingbot|Sosospider|Sogou Pic Spider|Googlebot|360Spider|qihoobot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|Sogou web spider|soso|sogou|yahoo|sohu-search|yodao|robozilla|msnbot|MJ12bot|NHN|Twiceler|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Googlebot|Ezooms) {proxy_pass http://xxx.xxx.xxx.xxx:3000?urlhttps%3A%2F%2Fwww.xxxxxxxx.com${document_uri}$is_args$query_string;}}}}逻辑就是通过请求的User-Agent判断是否是爬虫如果是爬虫就调用一个端口为3000的服务将路径转发给它让它加载完返回加载后js会渲染完成的html。至于这个端口为3000的服务我是用了一个docker安装的镜像为zenato/puppeteer-renderer的容器对外端口为3000作用就是进行服务端渲染。docker运行语句:docker run -d --name puppeteer-renderer -p 3000:3000 zenato/puppeteer-renderer:latestzenato/puppeteer-renderer的开源地址https://github.com/zenato/puppeteer-renderer3. 接口后端服务其实没什么好说的就是做缓存就好了可以用Redis。另外一般返回格式为json所以最好在nginx处加上json格式的gzip。http {...gzip_types text/plain application/javascript text/css application/json;}4. Live2d的优化对于live2d基础的js和css的优化就不说了顺便提一下live2d的图片因为要拼接起来所以很大记得也要压缩这里主要说一下moc格式moc这个是用来存live2d模型的我这里会达到三百多k非常占资源其实moc是可以进行gzip压缩的压缩后我这里会降低到一百多k不到一半moc进行gzip压缩有我这里有两种方案对nginx进行配置再增加一个针对moc的gzip压缩http {...gzip_types text/plain application/javascript text/css application/json text/x-moc;}蕾姆live2d调整xx.model.json文件中的后缀{model: xx.moc.txt,}然后修改xx.moc为xx.moc.txt即可需要确保nginx有做text/plain的gzip压缩5. 七牛云的优化5.1 七牛云的图片瘦身可以在七牛云的 对象存储 - 空间管理 - 你自己的空间 - 多媒体样式 - 新建样式 中配置。我这里建议是打开图片瘦身输出格式为webp。需要注意修改以后右侧可以看到示例链接复制你图片的链接加上多出来的后缀即可访问。我这里访问后基本可以做到瘦身三四成的样子。放一下配置截图:image.png5.2 七牛云的gzip压缩截止到我写这篇文章的时候七牛云会默认开启gzip加速的类型有:text/plaintext/csstext/javascripttext/xmlapplication/x-javascriptapplication/jsonapplication/xmlapplication/xmlrssapplication/javascript来源: https://developer.qiniu.com/fusion/1571/seven-niuyun-support-for-text-file-download-optimization不能进行自定义所以对于上面的live2d的moc文件最好调整为txt格式进行gzip压缩6. 工具我这里用了谷歌的 PageSpeed Insights 进行分析分析还是很全的。PageSpeed Insights: https://pagespeed.web.dev/?hlzh_CN放一下截图:4790eaf60145dd91b3f147df0db582f0.png可以点击七仔的博客测试我的博客速度

相关新闻

【面向对象】宽接口、窄接口和访问方法(上)

【面向对象】宽接口、窄接口和访问方法(上)

椎昧汤揪在前面的文章《10min搭建一个大模型智能客服助手》中,我们详细介绍了搭建大模型智能客服的详细过程。 但是,这种基于工作流知识库的模式的方案只能解决通用的问答,还不够""智能""。 所以,我继续增加&…

2026/5/17 10:26:12 阅读更多 →
从链路可见到语义权威:生成式搜索引擎优化(GEO)战略框架解读

从链路可见到语义权威:生成式搜索引擎优化(GEO)战略框架解读

1. 范式革命:从传统SEO搜索向AI原生答案的变迁在数字化营销的演进历程中,我们正处于一个决定性的断裂点。权威研究机构Gartner发布了一项足以重塑企业战略逻辑的预测:到2028年,传统搜索引擎的流量将大幅下降50%。这并非简单的技术…

2026/7/4 2:39:19 阅读更多 →
走向ASP.NET架构设计—第五章—业务层模式,原则,实践(前篇)

走向ASP.NET架构设计—第五章—业务层模式,原则,实践(前篇)

锥槐慌锥1. k8s 架构K8s 属于经典的主从模型(Master-Slave 架构),由 Master 和 Node 节点构成: Master 节点:负责集群的管理,协调集群中的所有活动。例如应用的运行、修改、更新等。 Node 节点:…

2026/5/17 10:26:11 阅读更多 →

最新新闻

本科生论文写作利器:AI工具全流程指南

本科生论文写作利器:AI工具全流程指南

1. 本科生论文写作痛点与AI工具价值 写毕业论文是每个本科生都要经历的"成人礼",但现实中90%的学生都会遇到这些典型问题:文献综述找不到方向、数据分析耗时费力、格式调整反复折腾、查重降重痛苦不堪。作为带过上百篇本科论文的指导老师&…

2026/7/4 12:43:07 阅读更多 →
如何3步完成iOS激活锁绕过:面向A9-A11设备的完整指南

如何3步完成iOS激活锁绕过:面向A9-A11设备的完整指南

如何3步完成iOS激活锁绕过:面向A9-A11设备的完整指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否曾遇到过这样的情况:购买二手iPhone后却卡在激活锁界面无法使用&…

2026/7/4 12:39:05 阅读更多 →
Android ML Kit人脸比对技术实现与优化

Android ML Kit人脸比对技术实现与优化

1. Android ML Kit 人脸比对技术解析在移动应用开发中,人脸识别技术已经成为身份验证、社交互动等场景的核心功能。Google提供的ML Kit人脸识别API为开发者提供了便捷高效的解决方案。不同于传统的人脸比对方式(如直接比较像素值)&#xff0c…

2026/7/4 12:39:05 阅读更多 →
机器学习可观测性实战:构建数据-模型-业务三层健康保障体系

机器学习可观测性实战:构建数据-模型-业务三层健康保障体系

1. 项目概述:这不是一次模型训练,而是一场交付实战“From Notebook to Production: Running ML in the Real World (Part 4)”——光看标题,你可能以为这是某套系列教程的第四讲,讲点模型部署或API封装。但如果你真在一线做过三个…

2026/7/4 12:37:05 阅读更多 →
STM32与LP5812实现动态灯光控制方案

STM32与LP5812实现动态灯光控制方案

1. 项目背景与硬件选型解析 在嵌入式系统开发中,动态灯光效果已经成为提升用户交互体验的重要手段。这次我选择了STM32F429ZI作为主控芯片,搭配德州仪器的LP5812 RGB LED驱动器,构建了一套高灵活性的灯光控制系统。这个组合特别适合需要复杂灯…

2026/7/4 12:37:05 阅读更多 →
深度学习优化器对比实验:固定网络下6种optimizer性能全解析

深度学习优化器对比实验:固定网络下6种optimizer性能全解析

1. 项目概述:为什么同一个神经网络要换着 optimizer 跑? “Training the Same Neural Network with Different Optimizers”——这个标题看起来像一句实验课作业要求,但背后藏着深度学习实践中最常被忽视、却影响最深远的底层逻辑&#xff1a…

2026/7/4 12:37:05 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻