fix(website): relative asset base — subpath deploy rendered a blank page - #614
Merged
Conversation
…m a subpath The deploy finally reached the web and served a blank page. Cause: vite `base: '/'` emits absolute asset URLs. GitHub Pages serves this repository as a project site under /trinity/, so index.html asked for /assets/index-*.js — which resolves to the apex root, where that file does not exist (404). No bundle, no React, blank page. Verified directly: 404 https://t27.ai/assets/index-C0-LRwGj.js 200 https://t27.ai/trinity/assets/index-C0-LRwGj.js Fix: `base: './'` so assets are addressed relative to wherever index.html sits — correct at the apex AND under /trinity/. Safe because routing is HashRouter, so there is no server-side path resolution to worry about. Also made the manifest link relative for the same reason. Build output now has zero absolute local paths. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
github-actions Bot
added a commit
that referenced
this pull request
Aug 8, 2026
fix(website): relative asset base so the site renders when served from a subpath (#614) The deploy finally reached the web and served a blank page. Cause: vite `base: '/'` emits absolute asset URLs. GitHub Pages serves this repository as a project site under /trinity/, so index.html asked for /assets/index-*.js — which resolves to the apex root, where that file does not exist (404). No bundle, no React, blank page. Verified directly: 404 https://t27.ai/assets/index-C0-LRwGj.js 200 https://t27.ai/trinity/assets/index-C0-LRwGj.js Fix: `base: './'` so assets are addressed relative to wherever index.html sits — correct at the apex AND under /trinity/. Safe because routing is HashRouter, so there is no server-side path resolution to worry about. Also made the manifest link relative for the same reason. Build output now has zero absolute local paths. Co-authored-by: Dmitrii Vasilev <admin@t27.dev> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #611 and #612. Those got the deploy running and pointed Pages at the right branch —
https://t27.ai/trinity/finally returns 200. It served a blank page.Cause
apps/website/vite.config.tshad:That emits absolute asset URLs. But GitHub Pages serves this repo as a project site under
/trinity/, soindex.htmlrequested/assets/index-*.js— which resolves to the apex root, where that file does not exist:No bundle → no React → empty
<body>. The HTML and the assets were both deployed correctly; only the addressing was wrong.Fix
base: './'— assets are addressed relative to whereverindex.htmlsits, so the same build works at the apex and under/trinity/. This is safe here specifically because routing isHashRouter: there is no server-side path resolution that a relative base could confuse.Also made
manifest.jsonrelative for the same reason.Verification
Built output now contains zero absolute local paths:
After this deploys I will load the page in a real browser and confirm it renders — the previous "200 OK" was not proof that anything worked.
🤖 Generated with Claude Code