Deployment files
deploy/ is an optional source root for deployment files:
files that must travel with a deployed site but are not site content. It keeps
host configuration and third-party verification files out of content/, where
regular files are otherwise copied assets with locale and template semantics.
Use this guide after the tutorial's deployment step when you need a file at a fixed output-root path.
Use cases
Place files below deploy/ when their destination must be a particular path
in the generated output tree:
my-site/
├── deploy/
│ ├── .htaccess
│ ├── google1234567890.html
│ └── server/
│ └── headers.conf
└── public/ # generated
├── .htaccess
├── google1234567890.html
└── server/
└── headers.conf
This is useful for an Apache .htaccess file that supplies a Content Security
Policy, or for the HTML file used by Google Search Console site verification.
Heine copies the bytes unchanged; it neither parses the file nor knows which
web server or external service will consume it.
Deliberate boundary
Deployment files are not copied assets. They have no asset ID, template URL,
integrity value, image dimensions, locale override, or versioned filename.
Templates cannot refer to them through asset(). Use content/ for files
that a page needs to link or embed; use deploy/ only for output-root files
whose meaning belongs to the hosting environment.
Checks and builds
The optional directory and its nested directories must be real directories;
its nested files must be regular files, and symbolic links are rejected. Paths
must be valid UTF-8, portable output paths;
they cannot escape the output root, use platform-reserved filename components,
or collide by case or Unicode normalization. Heine checks deployment-file
claims together with pages, assets, and generated resources before writing, so
a deployment file cannot silently overwrite another output producer. The
reserved __heine/ namespace remains unavailable.
Full builds atomically publish a complete output tree. Consequently, removing
deploy/google1234567890.html removes its generated counterpart on the next
full build. Quick builds update changed, present deployment files, but - as with
all quick-build inputs - do not remove output for deleted or renamed files. Run
a normal build after such changes.