summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAndrew Godwin2022-12-15 00:35:04 -0700
committerAndrew Godwin2022-12-15 00:43:39 -0700
commit69f1b3168ac3f29fc4bafba0418769248b10062a (patch)
tree23b84b73be1f791d20c844ab4435152f8b182804 /core
parente0053b69ded06ef246db6239baeea87617a2621c (diff)
downloadtakahe-69f1b3168ac3f29fc4bafba0418769248b10062a.tar.gz
takahe-69f1b3168ac3f29fc4bafba0418769248b10062a.tar.bz2
takahe-69f1b3168ac3f29fc4bafba0418769248b10062a.zip
Improve cacheability
Diffstat (limited to 'core')
-rw-r--r--core/middleware.py6
-rw-r--r--core/models/config.py8
-rw-r--r--core/uris.py4
3 files changed, 11 insertions, 7 deletions
diff --git a/core/middleware.py b/core/middleware.py
index de35c4c..c1d92ef 100644
--- a/core/middleware.py
+++ b/core/middleware.py
@@ -6,9 +6,9 @@ from core import sentry
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):
@@ -22,6 +22,8 @@ class AcceptMiddleware:
or "application/activity" in accept
)
response = self.get_response(request)
+ if "Cache-Control" not in response.headers:
+ response.headers["Cache-Control"] = "private, max-age=0"
return response
diff --git a/core/models/config.py b/core/models/config.py
index 2bb0d75..8f5dc31 100644
--- a/core/models/config.py
+++ b/core/models/config.py
@@ -5,10 +5,10 @@ import pydantic
from asgiref.sync import sync_to_async
from django.core.files import File
from django.db import models
-from django.templatetags.static import static
from django.utils.functional import lazy
from core.uploads import upload_namer
+from core.uris import StaticAbsoluteUrl
from takahe import __version__
@@ -201,8 +201,10 @@ class Config(models.Model):
site_name: str = "Takahē"
highlight_color: str = "#449c8c"
site_about: str = "<h2>Welcome!</h2>\n\nThis is a community running Takahē."
- site_icon: UploadedImage = static("img/icon-128.png")
- site_banner: UploadedImage = static("img/fjords-banner-600.jpg")
+ site_icon: UploadedImage = StaticAbsoluteUrl("img/icon-128.png").relative # type: ignore
+ site_banner: UploadedImage = StaticAbsoluteUrl(
+ "img/fjords-banner-600.jpg"
+ ).relative # type: ignore
policy_terms: str = ""
policy_privacy: str = ""
diff --git a/core/uris.py b/core/uris.py
index 2800fd4..81f53b6 100644
--- a/core/uris.py
+++ b/core/uris.py
@@ -1,7 +1,7 @@
from urllib.parse import urljoin
from django.conf import settings
-from django.templatetags.static import static
+from django.contrib.staticfiles.storage import staticfiles_storage
class RelativeAbsoluteUrl:
@@ -41,7 +41,7 @@ class StaticAbsoluteUrl(RelativeAbsoluteUrl):
"""
def __init__(self, path: str):
- static_url = static(path)
+ static_url = staticfiles_storage.url(path)
if "://" in static_url:
super().__init__(static_url)
else: