最近我对自己的技术博客架构做了一次重要升级,实现了文章内容与静态网站生成器的完全解耦。这个方案让写作回归纯粹,同时保持了自动化部署的优势。以下是具体的实现方案: 🛠️ 方案架构 主仓库:flowstone/flowstone.github.io 主仓库仅保留静态网站生成器的相关配置,果断移除了所有文章内容。如此一来,主仓库更加简洁,专注于网站生成的核心配置工作,为后续的自动化部署奠定坚实基础。 文章仓库:flowstone/blog-articles 文章仓库则全心全意地承担起存放 Markdown 格式博文的重任。它就像一个专属的知识宝库,让每一篇文章都能在自己的 “小天地” 里有序存 …
描述 因为个人原因,准备把托管在阿里云虚拟主机上的博客迁移到免费的sourceforget平台上, 在迁移中遇到很多问题,一一记录下来。 操作 1.从虚拟主机中下载博客的相关文件(网站源码&数据库) 2.上传网站源码到FTP中 打开Sourceforget网站获取FTP连接信息,可以通过项目中的Admin->Project Web Hosting->Documentation,查找到相关FTP配置,如下图 FTP配置中需要注意登录后的文件路径,我已经在图中标出来了 FTP默认路径 FTP主机空间路径 3.同步数据库 通过项目中的Admin->Project Web …
问题描述 工作中遇到一个问题,因为我本人的SQL技术太差了,写了好久,都没有处理好,大概的需求如下,有一个列表,根据一个字段排序,排序后的结果,再根据字段排序。 问题分析 为了让读者能够充分理解这个问题,先分解问题 原始数据如下: 序号 名称 部门 入职时间 等级 1 小明 开发部 2012-10 1 2 小丽 账务部 2013-01 1 3 小华 开发部 2021-01 3 4 小红 开发部 2001-01 2 5 小张 账务部 2022-01 2 1、先根据部门分组,然后根据等级排序(正序) 预期结果如下 序号 名称 部门 入职时间 等级 1 小明 开发部 2012-10 1 2 小红 开 …
问题描述 有一天,测试妹子W向我提了一个BUG,问题描述如下,当操作动作D时,动作D可以看作更新,更新我当前选择的那一条数据,妹子W看到操作D成功页面中多出一条一样的数据,期望的结果是只会更新当前选择行的数据,并不会新增多余的数据。 问题原因 开始的时候,我认为代码有问题,查看一下代码,应该没有太大的问题,普通操作动作D时,数据会更新,不会新增多余的数据,但是在出现异常时,这个问题,就会复现出来,我当前猜想应该有事务有关系。 现在我先说明一下,动作D的业务逻辑,当我们点击动作D时,首先会调用更新操作,更新数据,此处的更新为先删除原先的数据,后重新插入数据,更新结束后,继续向下执行其它逻辑。在 …
问题描述 因工作需要导出Excel文件,使用技术为EasyPOI,EasyPOI是一个非常好的导出文件工具,官网提供非常详细的使用文档,在项目中使用EasyPOI的模板导出功能,官方提供的示例代码中,模板的路径都是本地,我使用时也是把Excle模板文件放在本地,因为之前需要导出的地方,不是很多,模板文件放在本地也没有太大问题,但是由于现在需求变更,会有大量的模板需要导出,如果放在本地会造成项目容量变大。现在想把导出的模板保存在远程的FTP服务中,EasyPOI读取FTP的中模板文件生成Excle文件。 解决步骤 1、 查找解决方式 上网找了许多相关资料,官网上也没有找到解决方法,意外浏览了一篇 …
软件环境 macOS Big Sur 11.1 React 16.12.0 Ant Design 4.10.0 实际效果 现有一个需求,是上传文件,点击浏览文件按钮,选中文件后,在按钮的上方显示,上传的文件列表,如下图所示 当前效果 目前使用阿里的Ant UI组件库,使用其中的上传组件,官方提供的示例,如下图如示 本地使用后,如下图所示 如何才能实现,我们需要的效果呢,Google了好多文章,找到了一种方式,就是重写itemRender方法,自定义文件列表的展示,使用这个方法,需要重写多个action。 后来查看公司前端人员写的代码,看到另一种解决方法。 主要使用两个Upload组件,第一 …
场景描述 在前端页面中,经常会使用到文件下载功能,我们如何实现下载功能呢? 开发环境 React ^16.12.0 Ant Design ^5.0.12 SpringBoot 2.3.0 问题分析 首先,想到下载,肯定要涉及文件流(字节流),后端接口返回文件流,前端页面把文件流保存成对应的文件。 后端接口设计 写一个无返回值的方法,方法参数是HttpServletResponse,代码如下所示 //SmsTemplateController.java @GetMapping("/download") public void …
场景描述 在前端页面中,经常会使用到文件上传功能,我们如何实现上传功能呢? 开发环境 React ^16.12.0 Ant Design ^5.0.12 SpringBoot 2.3.0 页面实现文件上传 首先我们要用到Ant框架中自带的上传组件Upload,代码如下所示 //index.tsx const props = { //组件的名字,调用接口时传递的名称 name: 'file', //上传前的操作 beforeUpload: (file: any, fileList: any) => { console.log('file, …
问题描述 在React开发中,遇到一个页面不停调用接口问题,如下图所示 问题解决 查找哪里调用了接口,最后在刷新按钮上找到了问题所在,如下所示 <Button type="text" icon={<ReloadOutlined />} title="刷新" onClick={loadData()} /> 按钮的点击事件上绑定了一个方法,loadData这是一个普通的查询接口,问题就是loadData()后面加了一对括号,如果我把括号去掉,问题就可以完美解决了,如下所示 <Button type="text" …
问题描述 在React文件中使用了useState,定义了查询条件,这个查询条件实际上是一个对象,如下所示 const [requestParam, setRequestParam] = useState({ pageNum: 1, pageSize: 2, startTime: "", endTime: "", mobile: "", sort: "", sortField: "" }); 这些参数是查询接口的请求参数,在一般情况下,我们只需要更新其中一个属性的值,在使用setRequestParam修改这些值 …