From 66a8a0ab9e0d1649ae79d385d6f93ce498d8407b Mon Sep 17 00:00:00 2001 From: Baoshuo Date: Fri, 22 May 2026 11:03:32 +0800 Subject: [PATCH] core: fix url helper for custom domain (#1162) Co-authored-by: undefined --- packages/hydrooj/src/service/server.ts | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 298b74b03..7da0a1222 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -144,19 +144,14 @@ export async function apply(ctx: Context) { } try { const { anchor } = args; - let withDomainId = args.domainId || false; - const domainId = this.args.domainId; - const host = this.domain?.host; - if (domainId !== 'system' && ( - !this.request.host - || (host instanceof Array - ? (!host.includes(this.request.host)) - : this.request.host !== host) - )) withDomainId ||= domainId; + const host = this.domain?.host || []; + const target = args.domainId || this.args.domainId; + const rootDomainId = (this.request.host && host?.length && host?.includes(this.request.host)) + ? this.args.domainId : 'system'; delete args.query; res = server.router.url(name, args, { query }).toString(); if (anchor) res = `${res}#${anchor}`; - if (withDomainId) res = `/d/${withDomainId}${res}`; + if (target !== rootDomainId) res = `/d/${target}${res}`; } catch (e) { logger.warn(e.message); logger.info('%s %o', name, args);