DevsDawn
DevsDawn

开发
文章归档

解决Vite无法获取env环境变量的问题

在使用Vite 5时,出现使用import.meta.env仅包含默认的一些环境变量,无法获取到在.env文件定义的环境变量的问题。 查阅 官方文档 有以下说明: Vite 默认是不加载 .env 文件的,因为这些文件需要在执行完 Vite 配置后才能确定加载哪一个,举个例子,root 和 envDir 选项会影响加载行为。不过当你的确需要时,你可以使用 Vite 导出的 loadEnv 函数来加载指定的 .env 文件。 因此,需要在vite.config.js中手动定义所需的环境变量。例如获取.env文件中的VITE_MY_APP_ENV变量,可…

2024-09-14  

使用acme.sh发布更新证书到阿里云CDN

近期各大云平台将免费SSL证书的有效期从1年缩短到90天,证书续期从1年一次变成了一年4次,非常繁琐。虽然我们的业务服务器上已经使用了.acme.sh实现证书自动续期,但由于网站使用了CDN,依然需要人工在阿里云CDN上进行证书配置。 最近看到acme.sh的Github仓库上有贡献者提了阿里云CDN的Deploy Hook PR,于是开始着手给业务部署CDN证书自动续期的功能。 操作步骤 由于该 PR 尚未合并到主分支,因此需要手动获取该 ali_cdn.sh 文件,上传到服务器~/.acme.sh/deploy目录下。 在阿里…

2024-07-19  

解决小程序chooseLocation:fail api scope is not declared问题

小程序在调用chooseLocation接口时出现如下报错: chooseLocation:fail api scope is not declared in the privacy agreement 原因为未在小程序后台的“用户隐私保护指引”维护权限声明信息。 进入小程序后台“设置”→“服务内容声明”→“用户隐私保护指引”处,点击“增加信息类型”,选中“选择的位置信息”然后补充权限说明。 等待协议审核通过,接口即可正常使用。

2024-07-08  

Sentry自部署切换文件存储到阿里云OSS

Sentry是一个流行的开源错误跟踪解决方案,在自部署(Self-hosted)版本中,默认情况下,Sentry使用本地文件系统来存储各种文件,例如Releases中上传的制品(Source Maps)、Replays等数据。随着时间的推移,硬盘空间的占用会因这些文件的累积而越来越大。 因此,需要将部分文件转移到外部存储以降低服务器的硬盘占用。另外,也可以充分利用OSS的生命周期功能将不常访问的数据沉降以节省存储成本。 切换文件系统到阿里云OSS 在sentry目录下找到sentry/config.yml文件,该文件是se…

2024-06-22  

ThinkPHP模型关联设置允许查询软删除数据

在使用ThinkPHP的模型关联和软删除功能时,我们可能会遇到一些特殊的需求。例如在某些情况下,我们希望关联数据即使已经被软删除,也需要查询出来。此时如果直接使用belongsTo之类的关联方法,查询出来的数据默认过滤了软删除数据。 例如,在获取一篇文章的发布者时,如果对应的用户已被删除,那么关联方法就无法获取对应的发布者信息。如果不想让软删除的用户影响关联结果,那么可以在模型关联中添加removeOption('soft_delete')方法: public function user() { return $this…

2023-11-06  

解决MySQL ERROR 3029 错误

ERROR 3029 (HY000): Expression #1 of ORDER BY contains aggregate function and applies to the result of a non-aggregated query 这个错误是指在使用聚合函数(如sum, count, max, min等)进行排序时,没有将排序的列包含在分组的列中,或者排序的列与分组的列没有函数依赖关系。这种情况下,MySQL无法确定如何对分组后的结果进行排序,因此会报错。这个错误与MySQL的sql_mode设置有关,如果sql_mode包含only_full_group_by,那么就会出现这个错误。 有两种解决办法: - 一种…

2023-10-19  

MySQL Incorrect key file for table 报错排查

近期一个项目在运行过程中数据库经常出现Incorrect key file for table 'xxx.MYI'; try to repair it. MySQL Errno: 126的错误,导致项目完全无法正常运行。业主急死,打了十几个电话过来,被迫在下班的路上继续加班:joy:。 首先通过搜索找到了这两种可能性: 一种可能的原因是您的查询获取的数据大于您的/tmp文件夹(即用于存储临时表的文件夹)的大小。解决方法是更改/tmp文件夹的位置,或者增加/tmp文件夹的空间。 另一种可能的原因是表损坏。解决方法是重新创建或修复…

2023-06-12  

解决MySQL in select子查询无法使用索引问题

近期在编写一个业务逻辑,需要从订单表中找出所有手机号属于某一个用户的订单,而每个用户可关联多个手机号,于是有以下的查询语句: select * from mall_order where phone in (select phone from user_phone where user_id = #{id]}) 以上mall_order表的phone字段和user_phone的user_id字段均已添加索引。 然而,通过对以上语句explain后发现索引失效,语句对mail_order进行了全表查询,并没有使用到已经添加的phone索引。 经过排查,发现mall_order表和user_phone表的phone字…

2022-12-07  

解决easyexcel导出表格慢问题

近期一个项目中出现使用easyexcel导出表格非常慢的情况。数据量约10w行,50个列,排除从数据库取出和处理数据的时间,调用ExcelWriterBuilder的doWrite方法后需要1分多钟的时间才能够生成好文件,导致客户端经常请求超时,无法顺利导出文件。 通过排查,发现项目之前的开发封装的导出类在导出时使用了LongestMatchColumnWidthStyleStrategyhandler,该handler会根据表格内宽度最大的单元格自动设置列宽,而该功能需要遍历所有单元格的数据来计算宽度来实现,因而十分耗费性能和时间…

2022-11-09  

Vue项目ChunkLoadError报错解决

问题信息 近期项目出现大量以下这种类型的报错,显示该js文件找不到,并且用户反馈点击后整个页面卡住,但是刷新页面后就不会再报错: ChunkLoadError Loading chunk chunk-9f35075c failed. (missing: https://***.com/js/chunk-9f35075c.4032e0dc.js) 以及下面这种报错: SyntaxError Unexpected token '<' 问题分析 尝试直接访问该链接,也是出现文件不存在的情况,而被伪静态规则转发访问到首页,chunk loader加载后发现不是正确的js文件,报…

2022-10-29  

小程序setStorageSync:fail write DB data fail报错问题处理

微信小程序线上报出以下错误: Error: MiniProgramError APP-SERVICE-SDK:setStorageSync:fail write DB data fail Error: APP-SERVICE-SDK:setStorageSync:fail write DB data fail 客户端手机型号和系统版本为iPhone 12(iOS 14),微信版本为8.0.29,SDK版本为2.27.0,经搜索得知wx.setStorageSync在部分微信苹果客户端上有几率出现本地数据库损坏,导致报出以上的错误。 虽然该公告显示7.0.7以前的版本才存在这个问题,但是社区里也有部分开发者反馈在8.0.x版本中也有出现过此…

2022-10-24  

修复date-fns-tz导入失败问题

在执行yarn build打包node项目时,出现以下错误: [vite]: Rollup failed to resolve import "date-fns/_lib/cloneObject/index.js" from "node_modules/date-fns-tz/esm/formatInTimeZone/index.js". This is most likely unintended because it can break your application at runtime. If you do want to externalize this module explicitly add it to `build.rollupOptions.external` error during build: Error: [vite]: Rollup failed to resolve import "date-fns/_lib/clon…

2022-09-23  

解决23:59:59.999时间存入MySQL变为00:00:00问题

问题 在使用Hutool的DateUtil.endOfDay方法时,生成的时间戳为2022-09-23 23:59:59.999,在写入MySQL数据库后字段值会变为2022-09-24 00:00:00。 原因 TIMESTAMP类型字段存储精度默认精确到秒,在存入带有毫秒数据时,毫秒数大于500时会自动进位。同理,DATETIME类型默认也是精确到秒的: UPDATE `test_table` SET `test_time` = '2022-09-23 23:59:59.999' WHERE `id` = 1; // 2022-09-24 00:00:00 UPDATE `test_table` SET `test_time` = '2022-09-23 23:59:59.499' WHERE `id…

2022-09-19  

git修改已提交记录的邮箱和作者名

修改指定提交之前 git rebase -r <some commit before all of your bad commits> \ --exec 'git commit --amend --no-edit --reset-author' 修改指定邮箱的提交 git filter-branch --env-filter ' OLD_EMAIL="[email protected]" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="[email protected]" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORR…

2022-03-25  

修复SSL peer certificate or SSH remote key was not OK问题

若确定证书未过期且非自签证书,可以先确认服务器证书是否为Let's Encrypt颁发的,大概率为Let's Encrypt根证书更新后,系统没有及时更新根证书所致,可以运行以下指令更新根证书。 apt-get update apt-get install ca-certificates

2022-03-10  
加载更多