fix(wiki): cache-buster �� ��������� ���� (#27)
All checks were successful
CI / Lint (push) Successful in 1m10s
CI / Build (push) Successful in 2m0s
CI / Secret scan (push) Successful in 2m34s
CI / PR size check (push) Has been skipped
CI / Deploy to S1 + S2 (push) Successful in 2m52s

This commit is contained in:
min 2026-06-03 04:41:18 +00:00
commit 91d3f48b80
2 changed files with 12 additions and 3 deletions

View File

@ -8,7 +8,7 @@ import RublocsLogo from '../components/RublocsLogo/RublocsLogo';
import useDeviceType from '../hooks/useDeviceType';
import KubikonDesktopOnlyStub from './KubikonDesktopOnlyStub';
import Icon from '../editor/Icon';
import { DOCS } from './docsData';
import { DOCS, wikiUrl } from './docsData';
import { GAMES, GAME_GROUPS } from './docsGames';
import { LESSONS, hasLesson } from './docsLessons';
import { buildGameProject } from './docsGamesBuilders';
@ -233,7 +233,7 @@ const GamesGrid = ({ onOpenLesson }) => (
</div>
<img
className="gameCard__img"
src={`/wiki/${g.previewShot || `lesson${g.num}-result.png`}`}
src={wikiUrl(g.previewShot || `lesson${g.num}-result.png`)}
alt={g.title}
loading="lazy"
onError={(e) => { e.currentTarget.style.display = 'none'; }}

View File

@ -82,11 +82,20 @@ export const Try = ({ children }) => (
);
// Скриншот интерфейса с подписью
// Версия вики-ассетов (cache-buster). Бампать при добавлении/замене картинок
// в public/wiki/ иначе у юзеров, открывавших статью ДО заливки файла,
// браузер кэширует битый SPA-fallback (HTML вместо PNG) и Ctrl+Shift+R не
// помогает (инцидент 2026-06-03 с guide-taxisim). Новый ?v=N = новый URL.
export const WIKI_ASSET_V = 4;
/** URL вики-картинки с версией для обхода кэша. */
export const wikiUrl = (name) => `/wiki/${name}?v=${WIKI_ASSET_V}`;
// src имя файла из public/wiki/, caption подпись под картинкой.
// wide для широких скринов (обзор, лента): растянуть на всю ширину.
export const Shot = ({ src, caption, wide }) => (
<figure className={'docShot' + (wide ? ' docShot--wide' : '')}>
<img src={`/wiki/${src}`} alt={caption || ''} loading="lazy" />
<img src={wikiUrl(src)} alt={caption || ''} loading="lazy" />
{caption && <figcaption>{caption}</figcaption>}
</figure>
);