Skip to content

Static Assets

Create fast, scalable front-end applications deployed to Cloudflare Workers.


What you can build

Static Websites

Deploy static sites like blogs, portfolios, or documentation pages. Serve HTML, CSS, JavaScript, and media files directly from Cloudflare's network for low-latency access worldwide.

Deploy a static site

Full-stack Applications

Build dynamic and interactive server-side rendered (SSR) applications on Cloudflare Workers.

You can combine asset hosting with Cloudflare's data and storage products such as Workers KV, Durable Objects, and R2 Storage to build full-stack applications that serve both front-end and back-end logic in a single Worker.

Deploy a full-stack application

Supported frameworks

The following Frameworks are currently supported on Cloudflare Workers:

Pricing

Requests to a project with static assets can either return static assets or invoke the Worker script, depending on if the request matches a static asset or not.

Requests to static assets are free and unlimited. Requests to the Worker script (e.g. in the case of SSR content) are billed according to Workers pricing. Refer to pricing for an example.

Troubleshooting

  • assets.bucket is a required field — if you see this error, you need to update Wrangler to at least 3.78.10 or later. bucket is not a required field.

Limitations

The following limitations apply for Workers with static assets:

  • You cannot yet enable Smart Placement projects with static assets. This is a temporary limitation, we are working to remove it.
  • You cannot upload static assets to Workers for Platforms user workers. This is a temporary limitation, we are working to remove it.
  • In local development, you cannot make Service Binding RPC calls to a Worker with static assets. This is a temporary limitation, we are working to remove it.
  • Workers with assets cannot run on a route or domain with a path component. For example, example.com/* is an acceptable route, but example.com/foo/* is not. Wrangler and the Cloudflare dashboard will throw an error when you try and add a route with a path component.