ada-blazor-wasm-github-pages

Deploy Blazor WebAssembly static sites to GitHub Pages with content pipelines and Actions workflows.

Updated Jul 23, 2026
One-click install
npx skills add https://github.com/wubing7755/Ada --skill ada-blazor-wasm-github-pages-wubing7755
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ada-blazor-wasm-github-pages
Source: https://github.com/wubing7755/Ada/tree/main/skills/software-development/ada-blazor-wasm-github-pages
Command: npx skills add https://github.com/wubing7755/Ada --skill ada-blazor-wasm-github-pages-wubing7755

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires puppeteer-core, and includes scripts (resource) and references (resource) components.

What problem does it solve? Deploying Blazor WebAssembly sites to GitHub Pages involves non-obvious pitfalls: Jekyll discarding _framework directories, SPA sub-route refreshes returning 404, publish output nesting under publish/wwwroot, and build-time content conversion that must run before publish. This Skill encodes a verified deployment protocol covering all of these failure modes. ## Core Features & Use Cases - Verified Deployment Workflow: Provides a tested GitHub Actions workflow (build, XML-to-JSON content conversion, publish, 404 fallback, .nojekyll, deploy-pages) with correct permissions and artifact root configuration. - Content Pipeline Guidance: Covers build-time XML-to-JSON conversion with multilingual field parsing, search index generation, and graceful degradation for external data enrichment. - Pitfall Catalog: Documents 20 field-tested traps including MSYS path issues on Windows, scoped CSS residue, Virtualize constraints, and GitHub Pages cache behavior. - Use Case: You have a Blazor WASM personal site with XML content sources and need automated GitHub Pages deployment with SPA routing, multilingual content, and post-deployment smoke verification. ## Quick Start Ask the agent to deploy your Blazor WebAssembly site to GitHub Pages with an automated Actions workflow and SPA route fallback.

Frequently Asked Questions about ada-blazor-wasm-github-pages

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a Blazor WebAssembly site to GitHub Pages?

Publish with dotnet publish, then ensure the artifact root is publish/wwwroot containing a .nojekyll file and a 404.html copied from index.html. Use actions/upload-pages-artifact and actions/deploy-pages in a GitHub Actions workflow with pages: write and id-token: write permissions.

Why is my Blazor WASM site blank after GitHub Pages deployment?

GitHub Pages runs Jekyll by default, which discards directories starting with underscores like _framework. Add an empty .nojekyll file to the artifact root. Also verify the artifact path is publish/wwwroot, not the publish directory itself.

How do I fix 404 errors when refreshing Blazor SPA sub-routes on GitHub Pages?

Copy index.html to 404.html in the publish output so GitHub Pages serves it for unmatched paths, letting Blazor route after startup. For project-level sites, also set the base href to /<repo>/ in index.html.

Why do my Blazor WASM data JSON files return 404 in local development?

The wwwroot/data directory is gitignored because it is generated at build time by the content converter tool. Run the converter manually before dotnet run, otherwise every data/*.json request fails at runtime rather than at build time.

Can I use python http.server to test Blazor WASM publish output locally?

No, python http.server lacks SPA fallback so sub-routes return 404 instead of index.html. Use the included spa-server.js script, which falls back to index.html for extensionless paths and mimics GitHub Pages 404.html behavior.

Why does my multilingual XML content get concatenated after conversion?

Using Element.Value on nested structures like <field><text lang="zh">A</text><text lang="en">B</text></field> concatenates child text into AB. Parse with parent.Elements(name) plus the lang attribute as a dictionary, using direct lang attributes on fields.