Serving a subdirectory
Last updated Oct 12, 2026 Note
This feature requires Wrangler v3.98.0 or later.
Like with any other Worker, you can configure a Worker with assets to run on a path of your domain. Assets defined for a Worker must be nested in a directory structure that mirrors the desired path.
For example, to serve assets from example.com/blog/*, create a blog directory in your asset directory.
- dist
- blog
- index.html
- posts
- post1.html
- post2.html
With a Wrangler configuration file like so:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "assets-on-a-path-example",
"main": "src/index.js",
"upload_source_maps": true,
"route": "example.com/blog/*",
"assets": {
"directory": "dist"
}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "assets-on-a-path-example"
main = "src/index.js"
upload_source_maps = true
route = "example.com/blog/*"
[assets]
directory = "dist"
In this example, requests to example.com/blog/ will serve the index.html file, and requests to example.com/blog/posts/post1 will serve the post1.html file.
If you have a file outside the configured path, it will not be served, unless it is part of the assets.not_found_handling for Single Page Applications or custom 404 pages. For example, if you have a home.html file in the root of your asset directory, it will not be served when requesting example.com/blog/home. However, if needed, these files can still be manually fetched over the binding.
Was this helpful?
YesNo
On this page
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/workers/static-assets/routing/advanced/serving-a-subdirectory/#page","headline":"Serving a subdirectory","description":"How to configure a Worker with static assets on a subpath.","url":"https://developers.cloudflare.com/workers/static-assets/routing/advanced/serving-a-subdirectory/","inLanguage":"en","image":"https://developers.cloudflare.com/workers/static-assets/routing/advanced/serving-a-subdirectory/og.png?v=185eca9d7984ce9a","dateModified":"2026-10-12","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
description: How to configure and use a full-stack application with Workers. title: Full-stack application image: https://developers.cloudflare.com/workers/static-assets/routing/full-stack-application/og.png?v=63f40fec1b0257c9
Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/workers/llms.txt
Use this file to discover all available pages before exploring further.
Docs