---
title: "DF8006: Static Build Mount Base Is Not Absolute"
description: "A static hub build writes each mount either under its base (\"{base}\") or as an absolute-path sibling of it, but \"{urlBase}\" is neither."
canonical_url: "https://devfra.me/errors/df8006"
---
# DF8006: Static Build Mount Base Is Not Absolute

> A static hub build writes each mount either under its base ("\{base}") or as an absolute-path sibling of it, but "\{urlBase}" is neither.

## Message

> A static hub build writes each mount either under its base ("`{base}`") or as an absolute-path sibling of it, but "`{urlBase}`" is neither

## Cause

`buildHub` maps a mount under the hub `base` into its `outDir` (the hub subtree), and any other mount to the deploy root (`outDir`'s parent) by its absolute path, so a devframe SPA or asset dir served as a sibling of the hub base still lands beside it. A mount base that is neither under the hub base nor an absolute path has no on-disk location in the output.

## Example

```ts
await buildHub({
  outDir: 'dist/__devframes',
  async configure(ctx) {
    // ✓ Good: under the hub base, written into `outDir`
    await ctx.install(a, { base: '/__devframes/a/' })
    // ✓ Good: an absolute sibling, written to the deploy root beside the hub
    await ctx.install(b, { base: '/tools/b/' })
    // ✗ Bad: a relative base resolves against neither
    await ctx.install(c, { base: 'tools/c/' })
  },
})
```

## Fix

Give the mount an absolute base (starting with `/`): a base under the hub base writes into `outDir`, and any other absolute base writes to the deploy root by its path.

## Source

- [`packages/hub/src/node/build.ts`](https://github.com/devframes/devframe/blob/main/packages/hub/src/node/build.ts): `buildHub()`'s mount-to-disk mapping throws this for a mount base that is not absolute.


## Sitemap

See the full [sitemap](https://devfra.me/sitemap.md) for all pages.
