程序是 VanBlog 。
介绍网站: https://vanblog.mereith.com/
行为:在进入博客的后台管理页面时候,要发送一个 get 请求给开发者的后端服务程序。
发现原因:
issue 里有人提到进入后台管理页面需要 30s 左右,我自己也发现进入后台管理页面很慢很慢,就去跟踪了下代码。
相关代码:
这里是自己部署的服务端处理来自/api/admin/meta 的请求的
https://github.com/Mereithhh/vanblog/blob/master/packages/server/src/controller/admin/meta/meta.controller.ts
这部分具体代码:
@ApiTags('meta') @UseGuards(...AdminGuard) @ApiToken @Controller('/api/admin/meta') export class MetaController { constructor(private readonly metaProvider: MetaProvider) {} @Get() async getAllMeta(@Req() req: Request) { const meta = await this.metaProvider.getAll(); const serverData = await getVersionFromServer(); const data = { version: version, latestVersion: serverData?.version || version, updatedAt: serverData?.updatedAt || new Date(), user: req.user, baseUrl: meta.siteInfo.baseUrl, enableComment: meta.siteInfo.enableComment || 'true', allowDomains: process.env.VAN_BLOG_ALLOW_DOMAINS || '', }; return { statusCode: 200, data, }; } } 其中有一条函数执行是 getVersionFromServer,这里就会发送请求了。 https://github.com/Mereithhh/vanblog/blob/master/packages/server/src/utils/getVersion.ts
import axios from 'axios'; export const getVersiOnFromServer= async () => { try { let { data } = await axios.get('https://api.mereith.com/vanblog/version'); data = data?.data || {}; if (!data?.version) { return null; } return { version: data.version, updatedAt: data?.updatedAt || data?.upadtedAt, }; } catch (err) { return null; } }; 其实也能理解开发者,可能后期要上收费主题啥的,要做验证。但是我个人已经把这个博客程序给卸载,vps 重装系统了。
