Exported Site Shows a Blank Page? Run It Locally the Right Way cover image
Blog
NoCodeExport Team
Tutorial
5 min read

Exported Site Shows a Blank Page? Run It Locally the Right Way

Double-clicking index.html gives you a blank page and a console full of module errors. Here is why file:// breaks a modern export, and the one-line fix on macOS, Windows and Linux.

You unzip your export, double-click index.html, and get a blank white page. The console says something like Failed to load module script or Cross origin requests are only supported for protocol schemes: http, https.

Nothing is wrong with the export. You are hitting a browser security rule, and the fix takes about ten seconds.

Why double-clicking fails

Double-clicking opens the file with the file:// protocol. Fetching over http:// and opening over file:// are different security contexts, and browsers deliberately restrict the second one.

Three things break under file://:

JavaScript modules. Any <script type="module"> or .mjs file is blocked outright. Framer exports ship module scripts, so the page never boots. This is the one that produces a completely blank page.

fetch() and XHR. Every file:// request counts as a cross-origin request to a null origin. Search indexes, JSON data files and anything else the page loads at runtime will fail.

Relative path resolution. It mostly works, but the edge cases differ from a real server in ways that will mislead you when you are trying to debug something else.

None of this is specific to no-code exports. Any modern static site has the same problem. It is why the README inside your ZIP leads with a warning not to open index.html directly.

The fix: serve the folder over HTTP

You need any HTTP server pointed at the export folder. All of these do the job — pick whichever is already installed.

macOS and Linux

Node.js — fastest if you have it:

cd /path/to/your-export
npx serve

Press Enter if it offers to install. It prints a URL like http://localhost:3000. Open that.

While you are iterating on files, disable caching so you are not staring at a stale copy:

npx serve -c-1

Python — already on macOS and most Linux distros:

cd /path/to/your-export
python3 -m http.server 8000

Then open http://localhost:8000. Ctrl+C stops it.

Python's http.server sends the correct MIME types, which matters more than it sounds: .mjs has to arrive as text/javascript or the browser refuses to execute it as a module. A server that guesses wrong will reproduce the blank page you were trying to escape.

Caddy — closest to production:

cd /path/to/your-export
caddy file-server --listen :8000

Worth using if you plan to deploy behind a proxy and want local behaviour to match, since it sets sensible MIME types and headers automatically.

Windows

The Node and Python commands are identical in PowerShell or Command Prompt, with a Windows path:

cd C:\Users\you\Downloads\your-export
npx serve

If Python was installed from python.org, the launcher is py:

cd C:\Users\you\Downloads\your-export
py -m http.server 8000

If neither is installed and you would rather not install anything, VS Code's Live Server extension does the same thing from the editor: right-click index.html, choose Open with Live Server.

Which port?

It does not matter, as long as nothing else is using it. If you see EADDRINUSE, pick another: npx serve -l 4000 or python3 -m http.server 4001.

Checking the export actually worked

Once it is served, a quick pass tells you whether the export is sound before you spend time deploying it:

Open DevTools and look at the Console. It should be quiet. Errors mentioning your original platform's domain mean something is still calling home.

Check the Network tab for 404s. Filter by status. A missing asset here is a missing asset in production.

Click through the navigation. Internal links should stay on localhost. If a click sends you back to your Webflow or Framer domain, that link was built at runtime and did not get rewritten — worth reporting.

Resize the window. Layout should change at your breakpoints. If every breakpoint renders at once, the breakpoint CSS did not come through.

Scroll the whole page. Images below the fold should be present, and scroll animations should fire.

Submit a form. Forms need a destination after export. If you configured one during export, confirm it arrives; if you did not, the form will not do anything yet.

After it works locally

A folder that serves correctly on localhost will serve correctly almost anywhere, because there is nothing left to configure. The usual next steps:

For a full comparison of the free options, read how to host a static HTML website for free.

Common problems

Still blank, and the console mentions modules. The server is sending .mjs as the wrong MIME type. Switch to python3 -m http.server or Caddy, both of which get it right.

Styles load but fonts do not. On the free plan assets are hotlinked to the original CDN rather than downloaded, so fonts need a network connection. Fully offline hosting needs the download option.

Page works, interactions do not. Sliders, tabs and accordions are re-implemented in plain JavaScript during export. If one is dead, check the console — a JS error earlier on the page will stop the rest of the script.

A 403 on every file. Directory permissions. chmod -R a+r . in the export folder fixes it on macOS and Linux.

Frequently Asked Questions

Technical Background

Understanding the underlying architecture is key to long-term scalability. NoCodeExport prioritizes clean, modular code generation that adheres to modern web standards.

Architecture

Built on top of established frameworks ensure portability and performance across any hosting provider.

Security

Static generation significantly reduces the attack surface, providing enterprise-grade security for every project.

Try the tool

Validate this on a live site

When you're ready to test this path on a real project, open the dedicated tool page and run it against your live URL.

Recommended tool

Website Code Exporter

Export HTML, CSS, and JS from live sites

Use the main exporter page to analyze a real site, review the export setup, and continue with the right workflow.

Open Website Code Exporter

Take Full Control of Your Web Projects

NoCodeExport is more than a conversion tool; it is a gateway to modern web development for designers and creators who value code ownership and performance.