build: content-hash cache-busting for local CSS/JS (?v=hash)
Deploy to Production on Develop Push / deploy (push) Successful in 20s
Deploy to Production on Develop Push / deploy (push) Successful in 20s
Stops deploys being served stale from browser cache — the recurring "changes do not show up until a hard refresh" problem. - New tools/cache_bust.py stamps a global content hash onto every local <link>/<script> CSS/JS ref AND the @import lines in css/main.css (so partial edits bust too). External (https://) refs are untouched. Deterministic and idempotent: same content -> same stamp, any asset edit -> new stamp sitewide. - Wired as the final step of tools/build_site.py so every build/deploy stamps. - Initial stamp applied across 259 pages + main.css (v=64a53dd6). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
7c2110d8a5
commit
954f186761
262 files changed
+1518
-1435
No files matched your search
+25
-25
@@ -15,36 +15,36 @@
|
||||
*/
|
||||
|
||||
/* 1. Base Styles */
|
||||
@import 'base/_base.css';
|
||||
@import 'base/_typography.css';
|
||||
@import 'base/_base.css?v=64a53dd6';
|
||||
@import 'base/_typography.css?v=64a53dd6';
|
||||
|
||||
/* 2. Layout Components */
|
||||
@import 'layout/_header.css';
|
||||
@import 'layout/_footer.css';
|
||||
@import 'layout/_header.css?v=64a53dd6';
|
||||
@import 'layout/_footer.css?v=64a53dd6';
|
||||
|
||||
/* 3. Reusable Components */
|
||||
@import 'components/_buttons.css';
|
||||
@import 'components/_cards.css';
|
||||
@import 'components/_lang-banner.css';
|
||||
@import 'components/_lightbox.css';
|
||||
@import 'components/_buttons.css?v=64a53dd6';
|
||||
@import 'components/_cards.css?v=64a53dd6';
|
||||
@import 'components/_lang-banner.css?v=64a53dd6';
|
||||
@import 'components/_lightbox.css?v=64a53dd6';
|
||||
|
||||
/* 4. Page-specific Styles */
|
||||
@import 'pages/_home.css';
|
||||
@import 'pages/_projects.css';
|
||||
@import 'pages/_article.css';
|
||||
@import 'pages/_about.css';
|
||||
@import 'pages/_timeline.css';
|
||||
@import 'pages/_guide.css';
|
||||
@import 'pages/_faq.css';
|
||||
@import 'pages/_blog.css';
|
||||
@import 'pages/_news.css';
|
||||
@import 'pages/_member.css';
|
||||
@import 'pages/_support.css';
|
||||
@import 'pages/_hub.css';
|
||||
@import 'pages/_legal.css';
|
||||
@import 'pages/_gallery.css';
|
||||
@import 'pages/_press.css';
|
||||
@import 'pages/_event.css';
|
||||
@import 'pages/_home.css?v=64a53dd6';
|
||||
@import 'pages/_projects.css?v=64a53dd6';
|
||||
@import 'pages/_article.css?v=64a53dd6';
|
||||
@import 'pages/_about.css?v=64a53dd6';
|
||||
@import 'pages/_timeline.css?v=64a53dd6';
|
||||
@import 'pages/_guide.css?v=64a53dd6';
|
||||
@import 'pages/_faq.css?v=64a53dd6';
|
||||
@import 'pages/_blog.css?v=64a53dd6';
|
||||
@import 'pages/_news.css?v=64a53dd6';
|
||||
@import 'pages/_member.css?v=64a53dd6';
|
||||
@import 'pages/_support.css?v=64a53dd6';
|
||||
@import 'pages/_hub.css?v=64a53dd6';
|
||||
@import 'pages/_legal.css?v=64a53dd6';
|
||||
@import 'pages/_gallery.css?v=64a53dd6';
|
||||
@import 'pages/_press.css?v=64a53dd6';
|
||||
@import 'pages/_event.css?v=64a53dd6';
|
||||
|
||||
/* Loaded last so the shared filter bar wins over per-page chip styles. */
|
||||
@import 'pages/_filterbar.css';
|
||||
@import 'pages/_filterbar.css?v=64a53dd6';
|
||||
Reference in new issue
Block a user