Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

lith Caddy: drop {path} from papers top-level try_files

Caddy's try_files matches directories the same as regular files. With
{path} as the first term, a request for /platter (the directory) would
short-circuit at the {path} match and skip {path}/index.html — then
file_server received a directory URI but somehow served the wrong file
rather than canonicalizing.

Removing {path} lets file_server handle existing regular files itself
(it always does, regardless of try_files) AND issues the canonical
301 redirect for /<dir> → /<dir>/, after which the next request hits
{path}/index.html cleanly.

Caught moving the jeffrey dashboard to /platter/jeffrey/: /platter
(no slash) was serving the papers root SPA instead of the new
platter/index.html.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+9 -1
+9 -1
lith/Caddyfile
··· 74 74 file_server 75 75 } 76 76 77 - try_files {path} {path}.html {path}/index.html {path}index.html 77 + # NOTE: {path} is intentionally absent from the top-level try_files. 78 + # Caddy's try_files matches directories as well as files, so including 79 + # {path} would silently match a request for /platter (the directory), 80 + # short-circuit before {path}/index.html, then file_server would serve 81 + # the wrong content rather than canonicalizing to /platter/. Without 82 + # {path} here, file_server handles existing regular files itself and 83 + # issues a 301 redirect for directory-without-slash to the canonical 84 + # /<dir>/ form. (See: 2026-04-29 platter URL move.) 85 + try_files {path}.html {path}/index.html {path}index.html 78 86 file_server 79 87 } 80 88