Repository navigation
Commit 88697bd
committed
Stop the panel's own scripts being cached for a year
The document root caches every .js and .css for a year as immutable. That
is right for the site's build output, where a changed file is a changed
filename because the name carries a content hash. It is wrong for the
panel: admin.js, admin.css, api.js, car-data.js and booking-data.js have
fixed names, so a browser that loaded the panel once would not ask for
them again until 2027 -- and every change to the panel would reach nobody
who had ever used it, with no error and nothing to notice. The vehicle
photograph upload merged minutes ago would have been the first casualty.
Two parts, because one alone does not finish the job. admin/.htaccess
overrides the header for this folder, which fixes it for browsers that
ask -- and a browser already holding the file will not ask. So the tags
now carry the file's modification time: a changed file is a different
URL, and the cached copy cannot match it.
asset() lives in its own src/assets.php. It went into http.php first,
which was wrong in a way worth recording: http.php is the JSON endpoints'
plumbing, and no page that renders HTML loads it. dashboard.php,
index.php and content.php all require csrf.php and nothing else, so
asset() was defined precisely where it was never called from and every
panel page would have died on an undefined function. Caught by loading
the pages rather than by reading them -- php -l passes on a file that
calls a function that does not exist.
Verified: asset() returns admin.css?v=<mtime> and falls back to ?v=0 for
a file that is not there; the require precedes the first call in all
three pages; index.php reaches its database call, which is as far as
anything gets here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0128YzbhrfGdegUSc9RrARRf1 parent bb81a02 commit 88697bd
5 files changed
Lines changed: 62 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
11 | 34 | | |
12 | 35 | | |
13 | 36 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
105 | 106 | | |
106 | 107 | | |
107 | 108 | | |
108 | | - | |
| 109 | + | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | | - | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
751 | 752 | | |
752 | 753 | | |
753 | 754 | | |
754 | | - | |
755 | | - | |
756 | | - | |
757 | | - | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
758 | 759 | | |
759 | 760 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
47 | | - | |
| 48 | + | |
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
0 commit comments