Improve cacheability

pull/171/head
Andrew Godwin 2022-12-15 00:35:04 -07:00
rodzic e0053b69de
commit 69f1b3168a
5 zmienionych plików z 17 dodań i 8 usunięć

Wyświetl plik

@ -6,9 +6,9 @@ from core import sentry
from core.models import Config from core.models import Config
class AcceptMiddleware: class HeadersMiddleware:
""" """
Detects any Accept headers signifying a fellow AP server is trying to get JSON. Deals with Accept request headers, and Cache-Control response ones.
""" """
def __init__(self, get_response): def __init__(self, get_response):
@ -22,6 +22,8 @@ class AcceptMiddleware:
or "application/activity" in accept or "application/activity" in accept
) )
response = self.get_response(request) response = self.get_response(request)
if "Cache-Control" not in response.headers:
response.headers["Cache-Control"] = "private, max-age=0"
return response return response

Wyświetl plik

@ -5,10 +5,10 @@ import pydantic
from asgiref.sync import sync_to_async from asgiref.sync import sync_to_async
from django.core.files import File from django.core.files import File
from django.db import models from django.db import models
from django.templatetags.static import static
from django.utils.functional import lazy from django.utils.functional import lazy
from core.uploads import upload_namer from core.uploads import upload_namer
from core.uris import StaticAbsoluteUrl
from takahe import __version__ from takahe import __version__
@ -201,8 +201,10 @@ class Config(models.Model):
site_name: str = "Takahē" site_name: str = "Takahē"
highlight_color: str = "#449c8c" highlight_color: str = "#449c8c"
site_about: str = "<h2>Welcome!</h2>\n\nThis is a community running Takahē." site_about: str = "<h2>Welcome!</h2>\n\nThis is a community running Takahē."
site_icon: UploadedImage = static("img/icon-128.png") site_icon: UploadedImage = StaticAbsoluteUrl("img/icon-128.png").relative # type: ignore
site_banner: UploadedImage = static("img/fjords-banner-600.jpg") site_banner: UploadedImage = StaticAbsoluteUrl(
"img/fjords-banner-600.jpg"
).relative # type: ignore
policy_terms: str = "" policy_terms: str = ""
policy_privacy: str = "" policy_privacy: str = ""

Wyświetl plik

@ -1,7 +1,7 @@
from urllib.parse import urljoin from urllib.parse import urljoin
from django.conf import settings from django.conf import settings
from django.templatetags.static import static from django.contrib.staticfiles.storage import staticfiles_storage
class RelativeAbsoluteUrl: class RelativeAbsoluteUrl:
@ -41,7 +41,7 @@ class StaticAbsoluteUrl(RelativeAbsoluteUrl):
""" """
def __init__(self, path: str): def __init__(self, path: str):
static_url = static(path) static_url = staticfiles_storage.url(path)
if "://" in static_url: if "://" in static_url:
super().__init__(static_url) super().__init__(static_url)
else: else:

Wyświetl plik

@ -49,6 +49,7 @@ class BaseCacheView(View):
cached_content["content"], cached_content["content"],
headers={ headers={
"Content-Type": cached_content["mimetype"], "Content-Type": cached_content["mimetype"],
"Cache-Control": "public, max-age=3600",
}, },
) )

Wyświetl plik

@ -190,7 +190,7 @@ MIDDLEWARE = [
"django.contrib.messages.middleware.MessageMiddleware", "django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware",
"django_htmx.middleware.HtmxMiddleware", "django_htmx.middleware.HtmxMiddleware",
"core.middleware.AcceptMiddleware", "core.middleware.HeadersMiddleware",
"core.middleware.ConfigLoadingMiddleware", "core.middleware.ConfigLoadingMiddleware",
"api.middleware.ApiTokenMiddleware", "api.middleware.ApiTokenMiddleware",
"users.middleware.IdentityMiddleware", "users.middleware.IdentityMiddleware",
@ -274,6 +274,10 @@ STATICFILES_FINDERS = [
STATICFILES_DIRS = [BASE_DIR / "static"] STATICFILES_DIRS = [BASE_DIR / "static"]
STATICFILES_STORAGE = "django.contrib.staticfiles.storage.ManifestStaticFilesStorage"
WHITENOISE_MAX_AGE = 3600
STATIC_ROOT = BASE_DIR / "static-collected" STATIC_ROOT = BASE_DIR / "static-collected"
ALLOWED_HOSTS = SETUP.ALLOWED_HOSTS ALLOWED_HOSTS = SETUP.ALLOWED_HOSTS