Skip to content

fix: restore dual-origin base href while keeping it parameterized#185

Merged
cmaneu merged 2 commits into
mainfrom
fix-parameterized-base-href
Jun 10, 2026
Merged

fix: restore dual-origin base href while keeping it parameterized#185
cmaneu merged 2 commits into
mainfrom
fix-parameterized-base-href

Conversation

@sinedied

Copy link
Copy Markdown
Collaborator

Problem

The main deployment broke after #173 was merged, and that PR had to be reverted (#180). This restores the intent of #173 without breaking production.

The same single static build is served from two origins:

  • moaw.dev → root path /
  • *.github.io/moaw/ → sub-path /moaw/

The original code handled this at runtime (detect .github.io hostname → use /moaw/, otherwise /). PR #173 replaced that with a build-time hardcoded BASE_HREF=/moaw/, so the one deployed artifact always used /moaw/. On moaw.dev (served at root) every asset/route then resolved to a non-existent /moaw/..., breaking the site.

Fix

Keep the runtime .github.io detection (so both origins work) and keep PR #173's parameterization goal (hostable in other repos):

  • index.html / 404.html: the .github.io branch now uses a __BASE_HREF__ token instead of a hardcoded /moaw/. The static <base href="/"> is untouched, so root domains stay correct.
  • update-env.sh: substitutes __BASE_HREF__ in index.html + 404.html with ${BASE_HREF:-/moaw/}.
  • deploy.yml: sets BASE_HREF: /moaw/.

A fork can now set BASE_HREF to its own sub-path, while moaw.dev (root) and *.github.io/moaw/ both keep working from the same build.

Verification

  • BASE_HREF=/moaw/ npm run build:website succeeds.
  • In dist, __BASE_HREF__ substitutes to /moaw/, <base href="/"> stays intact, and no leftover tokens remain.

PR #173 replaced runtime hostname-based base href detection with a
build-time hardcoded BASE_HREF, which forced the single deployed
artifact to always use /moaw/. This broke serving from the moaw.dev
custom domain (served at root /), where assets and routes resolved to a
non-existent /moaw/ path.

Restore the runtime .github.io detection so the same build works from
both moaw.dev (/) and *.github.io/moaw/ (/moaw/), while still
parameterizing the sub-path value via BASE_HREF (defaulting to /moaw/)
so the platform can be hosted in other repositories.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sinedied sinedied requested a review from cmaneu as a code owner June 10, 2026 13:19
Comment thread packages/website/src/public/404.html Fixed
…substring sanitization'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
@cmaneu cmaneu merged commit 62637f6 into main Jun 10, 2026
5 checks passed
@cmaneu cmaneu deleted the fix-parameterized-base-href branch June 10, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants