Summary
A single page on a GitHub Pages site failed to load its CSS because the browser immediately redirected away from the page before the stylesheet could be fetched or applied. The HTML structure also placed critical elements in the wrong order, causing inconsistent rendering across browsers.
Root Cause
The meta refresh redirect executes almost instantly, preventing the CSS from ever loading. Additional structural issues in the HTML amplify the problem.
Key contributing factors:
<meta http-equiv="refresh">triggers a redirect before CSS loads- HTML elements placed outside the
<head>tag - GitHub Pages requiring correct relative paths (
assets/styles.css) - Browser optimization skipping CSS fetch on pages that redirect immediately
Why This Happens in Real Systems
Real browsers aggressively optimize page loads. When they detect:
- A redirect within fractions of a second
- A page that will not remain visible long enough to render
- A stylesheet that is not yet cached
…they often skip loading external resources like CSS entirely.
This is normal behavior, not a GitHub Pages bug.
Real-World Impact
When this pattern appears in production systems, it causes:
- Stylesheets not loading on redirect pages
- Flash-of-unstyled-content (FOUC)
- Broken branding on login/redirect flows
- Inconsistent behavior across browsers and devices
Example or Code (if necessary and relevant)
Below is a corrected version of the page that ensures CSS loads before redirecting:
setTimeout(() => {
window.location.href = "https://discord.gg/";
}, 800);
Redirecting you to The Discord Server!
If this fails please click here
How Senior Engineers Fix It
Experienced engineers avoid meta-refresh redirects entirely and instead:
- Use JavaScript-based delayed redirects
- Ensure CSS loads before any navigation event
- Validate relative paths locally and in production
- Keep all metadata inside
<head> - Use browser devtools to confirm network requests are actually made
They treat redirect pages as first-class citizens, not throwaway HTML.
Why Juniors Miss It
Junior developers often overlook this issue because:
- Meta refresh seems simple but hides browser-level behavior
- They assume “CSS works on other pages, so the path must be correct”
- They don’t check the Network tab to see CSS never loads
- They don’t realize browsers skip rendering on near-instant redirects
The failure mode is subtle: the page “works,” but the CSS silently never loads.