{asset 'charts.css'} answers the address of www/<app>/charts.css
with ?v= and the first ten hex digits of a hash of the file's contents:
/charts/charts.css?v=1f3a9c0b2e. The hash is made once per request. A changed file
gets a new address, so the server can send its assets with a cache lifetime of a year and a
browser still fetches the new version the moment it changes - no build step, no manifest.
With the bare tag option it writes the element itself: a
<link rel="stylesheet"> for a .css file, a
<script defer> for .js and a
<script type="module"> for .mjs, carrying the request's nonce
when $padCsp asks for one. From PHP, padAsset ( 'charts.css' ) and
padAssetTag ( 'app.js' ) give the same.
A name never leaves www/<app>/. A file that is not there is written as
the plain address and, under the strict check, reported as an error. The hash follows the
file, so the examples are shown rather than run. For the bundles of a Vite build, use
{vite}.