feat(web): офлайн-режим с кешем эскизов и превью
Добавлен service worker: оболочка приложения, ответы API и варианты изображений (эскиз, превью, средний) сохраняются в офлайн-кеше браузера. Ключ кеша картинки — путь объекта без подписи, поэтому обновление подписи не плодит записи; оригиналы и видео не кешируются. Кеш ограничен по размеру и вытесняет старые записи, при выходе из аккаунта очищается, а в верхней панели появляется индикатор «Офлайн». Добавлен манифест PWA; манифест отдаётся с типом application/manifest+json.
This commit is contained in:
@@ -364,6 +364,11 @@ func (s *Server) registerStatic(r *gin.Engine) {
|
||||
if clean != "" {
|
||||
if f, err := sub.Open(clean); err == nil {
|
||||
f.Close()
|
||||
// Манифест PWA отдаём с правильным типом: в системной таблице
|
||||
// mime расширения .webmanifest нет.
|
||||
if strings.HasSuffix(clean, ".webmanifest") {
|
||||
c.Header("Content-Type", "application/manifest+json")
|
||||
}
|
||||
fileServer.ServeHTTP(c.Writer, c.Request)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user