Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
929802978c | ||
|
|
02a21a8e45 |
@@ -5,16 +5,21 @@ server {
|
|||||||
|
|
||||||
# Named location — отдаёт React SPA без повторной маршрутизации
|
# Named location — отдаёт React SPA без повторной маршрутизации
|
||||||
location @spa {
|
location @spa {
|
||||||
|
add_header Cache-Control "no-store, must-revalidate";
|
||||||
try_files /index.html =404;
|
try_files /index.html =404;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Корневая страница
|
# Корневая страница — index.html никогда не кешируем, чтобы всегда грузился
|
||||||
|
# актуальный билд (ассеты внутри — с хешами в имени)
|
||||||
location = / {
|
location = / {
|
||||||
|
add_header Cache-Control "no-store, must-revalidate";
|
||||||
try_files /index.html =404;
|
try_files /index.html =404;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Статические ассеты приложения (JS, CSS, шрифты, картинки)
|
# Статические ассеты приложения (JS, CSS, шрифты, картинки) — имена с хешем,
|
||||||
|
# можно кешировать надолго
|
||||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|json|map)$ {
|
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|json|map)$ {
|
||||||
|
add_header Cache-Control "public, max-age=31536000, immutable";
|
||||||
try_files $uri =404;
|
try_files $uri =404;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,15 @@ export default function NewsFeed() {
|
|||||||
const [hasMore, setHasMore] = useState(false)
|
const [hasMore, setHasMore] = useState(false)
|
||||||
// Начальное состояние фильтров читаем из URL — ссылка открывает ленту с этими колледжами
|
// Начальное состояние фильтров читаем из URL — ссылка открывает ленту с этими колледжами
|
||||||
const [filters, setFilters] = useState(() => ({
|
const [filters, setFilters] = useState(() => ({
|
||||||
category: (searchParams.get('category') || '').split(',').filter(Boolean),
|
// Чистим slug'и: CMS иногда дописывает свой путь (/page/...) в хвост ссылки —
|
||||||
tag: searchParams.get('tag') || null,
|
// берём часть до первого «/» (в слагах слэша нет) и убираем дубли.
|
||||||
|
category: [...new Set(
|
||||||
|
(searchParams.get('category') || '')
|
||||||
|
.split(',')
|
||||||
|
.map(s => s.split('/')[0].trim())
|
||||||
|
.filter(Boolean)
|
||||||
|
)],
|
||||||
|
tag: (searchParams.get('tag') || '').split('/')[0] || null,
|
||||||
datePreset: searchParams.get('period') || '',
|
datePreset: searchParams.get('period') || '',
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user