Files
Flash5/flash-extensions/flash-ext-web-bundler/docs/asset-sources.md
T
Zakaria El OrcheandClaude Sonnet 5 8ece9975de feat(ext-web-bundler): add build-time asset scanning and static-frontend strategy
Introduces AssetDirectoryScanner, StaticFrontendStrategy, and WebBundlerBuild for
build-time asset discovery, plus config/docs updates for frontend-type resolution.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 00:22:26 +00:00

30 lines
1.1 KiB
Markdown

# Asset Sources
`flash-web-bundler` uses explicit source objects for production assets.
Supported sources:
- `FilesystemAssetsSource.of(Path)`
- `ClasspathAssetsSource.of(String rootPrefix)`
Builder shortcuts:
- `.assetsFromFilesystem(Path.of("dist"))`
- `.assetsFromClasspath("web/dist")`
Classpath source requires `asset-manifest.json` generated at build time.
The developer does not maintain this file manually — generate it with `WebBundlerBuild`
(`dev.relism.flash.ext.webbundler.WebBundlerBuild`), which scans a prebuilt directory (a Vite
`dist/` or a `STATIC` asset folder) and writes the manifest into it, ready to be picked up as a
classpath resource once that directory lands under `target/classes`. See `build-time.md`.
`WebBundlerBuild` reuses the exact same etag/mimeType/immutable computation `FilesystemAssetsSource`
uses at runtime, so a file served from disk in dev and the same file served from the classpath in
prod get identical cache semantics.
Production startup is fail-fast if:
- manifest is missing
- manifest is invalid
- manifest points to missing resources