diff --git a/.github/helm/affine/templates/ingress.yaml b/.github/helm/affine/templates/ingress.yaml index 8a3f03a533d29..1327e4584bf57 100644 --- a/.github/helm/affine/templates/ingress.yaml +++ b/.github/helm/affine/templates/ingress.yaml @@ -60,14 +60,7 @@ spec: name: affine-graphql port: number: {{ .Values.graphql.service.port }} - - path: /workspace/([^/]+)/(home|all|search|collection|tag|trash) - pathType: ImplementationSpecific - backend: - service: - name: affine-web - port: - number: {{ .Values.web.service.port }} - - path: /workspace/([^/]+)/.+ + - path: /workspace/([^/]+)/([^/]+)$ pathType: ImplementationSpecific backend: service: diff --git a/packages/backend/server/src/core/doc-renderer/controller.ts b/packages/backend/server/src/core/doc-renderer/controller.ts index 85035ed05ea8e..787661b96e787 100644 --- a/packages/backend/server/src/core/doc-renderer/controller.ts +++ b/packages/backend/server/src/core/doc-renderer/controller.ts @@ -33,6 +33,16 @@ const defaultAssets: HtmlAssets = { description: '', }; +// TODO(@forehalo): reuse routes with frontend +const staticPaths = new Set([ + 'all', + 'home', + 'search', + 'collection', + 'tag', + 'trash', +]); + @Controller('/workspace') export class DocRendererController { private readonly logger = new Logger(DocRendererController.name); @@ -84,14 +94,17 @@ export class DocRendererController { : this.webAssets; let opts: RenderOptions | null = null; - try { - opts = - workspaceId === docId - ? await this.getWorkspaceContent(workspaceId) - : await this.getPageContent(workspaceId, docId); - metrics.doc.counter('render').add(1); - } catch (e) { - this.logger.error('failed to render page', e); + + if (!staticPaths.has(docId)) { + try { + opts = + workspaceId === docId + ? await this.getWorkspaceContent(workspaceId) + : await this.getPageContent(workspaceId, docId); + metrics.doc.counter('render').add(1); + } catch (e) { + this.logger.error('failed to render page', e); + } } res.setHeader('Content-Type', 'text/html');