GitHub Actions+Caddy实现前端项目自动化部署到公网服务器
GitHub-Actions-Caddy-自动化部署 在现代前端开发中,自动化部署已成为提高开发效率的关键环节。本文将详细介绍如何利用GitHub Actions和Caddy服务器,实现前端项目的完全自动化部署,让你的代码从推送到仓库到上线的整个过程无人值守。
我们将实现的目标是:代码推送到GitHub后,自动完成构建、部署并上线,部署目标是您自己的公网服务器。
自动化部署方案概述在开始之前,让我们先了解一下整个自动化部署流程的架构:
graph LR
A[本地代码提交] --> B[推送到GitHub]
B --> C[GitHub Actions触发]
C --> D[构建项目]
D --> E[上传到服务器]
E --> F[C提供服务]
F --> G[用户访问]
这套方案的核心优势在于:
完全自动化 :推送代码后无需任何人工干预
安全可靠 :使用SSH密钥进行安全传输
自动HTTPS :Caddy自动申请和续期SSL证书
高效部署 :只传输构建后的静态资源
GitHub Actions工作流配置首先,我们需要在项目中创 ...
组件库的主题切换怎么做的?
ElementPlus主题切换机制 在前端开发中,主题切换是提升用户体验的重要功能,Element Plus作为一款优秀的Vue 3组件库,提供了简洁而强大的主题定制方案。本文将深入解析Element Plus主题切换的实现原理,带你从底层理解到实际应用。
本文将围绕Element Plus的dark/light模式切换展开,但其原理同样适用于自定义主题的切换。掌握这一机制,你将能够轻松应对各种主题定制需求。
主题切换的底层原理:CSS变量Element Plus的组件样式基于CSS变量(CSS Custom Properties)实现。这意味着组件的外观由一组预定义的CSS变量控制,而非硬编码的颜色值。
默认状态下的变量定义在默认情况下,组件使用定义在:root选择器下的CSS变量:
1234567/* 默认light主题的变量定义 */:root { --el-color-primary: #409eff; --el-bg-color: #ffffff; --el-text-color-primary: #303133; /* 更多变量... */& ...
你真的懂浏览器安全策略吗?从XSS到CSRF的攻防实战
🛡️ 浏览器安全策略全解析:从攻击到防护的完整指南浏览器安全策略是Web安全的第一道防线。本文将通过生动的攻防实例,带你深入理解SOP、CORS、XSS、CSRF、CSP等核心安全机制,让你不再死记硬背概念,而是真正掌握Web安全的精髓。
🎯 核心安全概念速览在深入学习之前,让我们先建立一个整体认知:
浏览器安全的核心思想:通过多层防护机制,确保恶意代码无法窃取用户数据或执行未授权操作。
攻击手段防护机制🔥 常见攻击方式
**XSS (跨站脚本攻击)**:注入恶意JavaScript代码
**CSRF (跨站请求伪造)**:利用用户身份执行未授权操作
点击劫持:诱导用户点击隐藏元素
中间人攻击:拦截和篡改网络通信
攻击者的目标:窃取用户凭证、执行恶意操作、获取敏感信息
🛡️ 浏览器防护策略
**SOP (同源策略)**:限制跨域资源访问
**CORS (跨域资源共享)**:安全的跨域请求机制
**CSP (内容安全策略)**:防止XSS攻击的强力工具
CSRF Token:防止跨站请求伪造
SameSite Cookie:限制Cookie的跨站发送
防护理念:最 ...
Git多人开发教程-精华版
理解Git核心:Commit的本质与增量思维🔍 Commit的本质:增量而非快照多数教程将Git的commit描述为文件快照,虽然这更接近git储存的本质,但开发视角下,更好的理解是:每次commit都是基于上一次提交的增量更新。这种视角让Git提交树的理解更加清晰:
分支的本质就是基于某个commit的不同增量更新路径
📖 文档演进的增量示例想象一个空白Word文档的版本演进:
小A的线性提交
写了第一段 → commit 1
添加第二段 → commit 2
完成第三段 → commit 3
gitGraph
commit
commit
commit
分支的增量分离小美和小帅基于commit 3创建分支,小美加了封面,小帅加了目录:
gitGraph
commit id: "v1"
commit id: "v2"
commit id: "v3"
branch feature-design
branch feature-toc
checkout feature-design
commit ...
TypeScript核心特性详解 - 从入门到精通
🚀 TypeScript核心特性详解TypeScript是JavaScript的超集,为JavaScript添加了静态类型检查。本文将通过生动的比喻和实战代码,带你深入理解TypeScript的核心特性。
📝 基本类型系统🎯 类型系统的价值TypeScript的类型系统就像代码的身份证,每个变量都有明确的身份标识,避免了运行时的类型错误。
基础类型复合类型特殊类型🔤 基础数据类型12345678910111213// 布尔值 - 真假判断let isDone: boolean = false;// 数字 - 支持十进制、十六进制、二进制、八进制let decimal: number = 6;let hex: number = 0xf00d;let binary: number = 0b1010;let octal: number = 0o744;// 字符串 - 支持模板字符串let color: string = "blue";let fullName: string = `Bob Bobbington`;let sentence: string ...
ES6特性介绍
🚀 ES6特性全攻略:让你的JavaScript代码更优雅
ES6(ECMAScript 2015)是JavaScript历史上最重要的更新之一,它不仅带来了语法糖,更重要的是改变了我们编写JavaScript的思维方式。本文将通过生动的例子和实际场景,带你领略ES6的魅力!
一、变量声明革命:告别var的混乱时代 🌟还记得那些被var坑过的日子吗?变量提升、作用域混乱…ES6的let和const终于拯救了我们!
var的坑let/const的优雅12345678910// 经典的var坑:循环中的异步回调for (var i = 0; i < 3; i++) { setTimeout(() => { console.log(i); // 输出 3, 3, 3 😱 }, 100);}// 变量提升导致的困惑console.log(name); // undefined(而不是报错)var name = "Alice";1234567891011121314// let解决循环问题for (let ...
🌈 HTML5+CSS3现代化最佳实践
HTML5语义化标签🧠 什么是语义化?HTML 标签不再只是 “盒子”,而是自带含义的 “说明书”!语义化标签让浏览器、屏幕阅读器、搜索引擎轻松理解页面结构。
举个栗子🌰:用 <nav> 装导航栏,比 <div class="nav"> 更直白,类似于鞋盒与一个普通盒子(贴了一个标签上面写着我是鞋盒)的区别
🏗️ 经典页面结构1234567891011<!-- 像搭积木一样构建页面 --><body> <header>👑网站标题和搜索框等</header> <nav>🗺️导航菜单</nav> <main> <article>📰独立文章</article> <section>📦内容部分(章节 / 主题分区)</section> </main> <aside>🎁侧边栏(广告 / 推荐等 "小彩蛋")</aside> & ...
wsl迁移教程
在使用wsl2的过程中,由于开发的相关项目越来越多,而wsl默认安装在C盘下,导致空间占用太大,思考能否将wsl子系统迁移到其它盘符下.经过一番尝试,完成了迁移,在此总结一下,供有需要的开发者参考.
一、迁移前的准备工作
停止 WSL2 运行
在 Windows PowerShell 或 CMD 中执行以下命令,确保 WSL 实例已关闭: 1wsl --shutdown
验证状态(显示为 Stopped): 1wsl -l -v
此处可以记录下自己的 wsl -l -v 输出的 发行版名称name ,以便后续导出使用。
创建目标目录
在 D 盘新建一个文件夹用于存放迁移后的 WSL 文件(如 D:\WSL_Ubuntu)。
二、导出 WSL2 系统镜像
导出现有系统为压缩包
替换 <发行版名称> 为你的 WSL 名称(如 Ubuntu-22.04): 1wsl --export <发行版名称> D:\WSL_Ubuntu\ubuntu.tar
此过程需等待较长时间,文件大小取决于原系统数据量 。
三、注销原有 WSL 实 ...
wsl参考的对象类型不支持尝试的操作
情景描述在Windows环境下启动Ubuntu子系统时,遇到了如下错误提示:“参考的对象类型不支持尝试的操作”。
永久解决方案下载并配置NoLsp.exe为了解决上述问题,您可以下载NoLsp.exe程序,并按照以下步骤操作:
下载链接:
原始链接(可能需要代理): NoLsp.exe
国内CDN链接: NoLsp.exe
下载完成后,请将NoLsp.exe放置于 C:\windows\system32 目录下。
管理员权限执行命令接下来,以管理员身份运行命令提示符(CMD),然后输入下列命令来执行:
1NoLsp.exe C:\windows\system32\wsl.exe
请确保NoLsp.exe和wsl.exe的路径正确无误。
错误原因分析根据Proxifier开发人员的解释,当Winsock LSP (Layered Service Provider) DLL被加载进wsl.exe进程时,就会出现该错误。解决这一问题最直接的方法是使用WSCSetApplicationCategory WinAPI调用对wsl.exe进行设置,以此阻止LSP DLL的加载。
具体来说 ...
鸡尾酒指南
🍸 鸡尾酒世界探索指南
鸡尾酒不仅仅是酒精饮料,它是艺术、是文化、是生活态度的体现。每一杯精心调制的鸡尾酒,都承载着调酒师的创意和对美好生活的追求。让我们一起踏上这场味觉与视觉的双重盛宴!
一、六大基酒:鸡尾酒的灵魂 🥃每种基酒都有自己独特的”性格”,了解它们就像认识不同的朋友一样有趣!
琴酒 Gin伏特加 Vodka朗姆酒 Rum威士忌 Whiskey龙舌兰酒 Tequila白兰地 Brandy🌿 琴酒 (Gin) - 植物园里的诗人琴酒 被誉为”鸡尾酒之王”,它的魅力在于那独特的植物香气。
🔍 深度解析:
原料基础:以谷物 (小麦、大麦)为基底蒸馏
灵魂成分:杜松子 - 赋予琴酒标志性的松针香气
风味层次:清新而略带苦味 ,如同漫步在英式花园
🌟 风味特点:
🌲 杜松子:松针般的清香,略带树脂味
🍋 柑橘皮:明亮的酸甜香气
🌿 芫荽籽:温和的香料味
🌸 其他植物:薰衣草、玫瑰花瓣等(因品牌而异)
调酒师小贴士:琴酒的植物香气在低温下更加突出,所以调制琴酒鸡尾酒时,记得充分冰镇!
🏆 经典搭配:
与汤力水 的完美结合
配柠檬 或青柠 提升清香
...
