From fd35b048f82d45f6b3bc2867301fd0f5709402c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Mon, 31 Aug 2026 12:29:29 +0100 Subject: [PATCH] no backticks in the nginx config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The config is a JavaScript template literal, and the comment added with the /crops/ rename quoted the paths in backticks. They closed the string, `crops` became a bare identifier, and the plugin failed to build: "crops is not defined". What that looked like from the outside is the part worth recording. The plugin did not mount, so every /fofos-admin call 404'd, so useReady's catch — which deliberately reports "cannot tell" as not-ready — locked all nine sections behind "Set a root location below to begin." A build error wearing the costume of a setup problem, and the honest suspicion was that the gate had gone wrong rather than the thing behind it. The gate is right. It is one line of a log away from being diagnosable, and the log said so. Co-Authored-By: Claude Opus 5 (1M context) --- api/static-site.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/api/static-site.ts b/api/static-site.ts index beb274c..41ae6e3 100644 --- a/api/static-site.ts +++ b/api/static-site.ts @@ -267,10 +267,15 @@ const NGINX_CONF = `server { # URL can never legitimately change. A re-crop is a different name, and the HTML that carries it is # revalidated every visit. This is the difference from /derived/ above, which is rewritten in place. # - # `/crops/`, and it was `/images/` until 2026-08-31 — a name taken from the URL rather than from what - # is behind it, beside two other directories equally full of images. A site published before the - # rename has `/images/` in its HTML and no longer has the files; the fix is a publish, which rewrites - # every one of these URLs anyway. + # /crops/, and it was /images/ until 2026-08-31 — a name taken from the URL rather than from what is + # behind it, beside two other directories equally full of images. A site published before the rename + # has /images/ in its HTML and no longer has the files; the fix is a publish, which rewrites every + # one of these URLs anyway. + # + # NO BACKTICKS IN HERE. This whole config is a template literal, so a pair of them around a path ends + # the string and makes the next word an identifier. That shipped once: the plugin failed to mount + # with "crops is not defined", every /fofos-admin call 404'd, and useReady's catch locked all nine + # sections behind "set a root location" — a build error wearing the costume of a setup problem. location ^~ /crops/ { expires 1y; add_header Cache-Control "public, immutable";