Static Assets
Create fast, scalable front-end applications deployed to Cloudflare Workers.
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
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
The following Frameworks are currently supported on Cloudflare Workers:
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.
assets.bucket is a required field
— if you see this error, you need to update Wrangler to at least3.78.10
or later.bucket
is not a required field.
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, butexample.com/foo/*
is not. Wrangler and the Cloudflare dashboard will throw an error when you try and add a route with a path component. - Workers’ Vitest integration does not currently handle static assets. All requests will reach your Worker script, which can otherwise be tested as usual. This is a temporary limitation — we are working to remove it.