Set the correct `Content-Type` header for static WebP images (#171)

pull/174/head
TAKAHASHI Shuuji 2022-12-16 02:31:25 +09:00 zatwierdzone przez GitHub
rodzic 2131b40ce0
commit 61fbda0ebf
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 13 dodań i 2 usunięć

Wyświetl plik

@ -4,6 +4,7 @@ from django.templatetags.static import static
from django.utils.decorators import method_decorator
from django.utils.safestring import mark_safe
from django.views.generic import TemplateView, View
from django.views.static import serve
from activities.views.timelines import Home
from core.decorators import cache_page
@ -89,3 +90,14 @@ class FlatPage(TemplateView):
"title": self.title,
"content": mark_safe(html),
}
def custom_static_serve(*args, **keywords):
"""
Set the correct `Content-Type` header for static WebP images
since Django cannot guess the MIME type of WebP images.
"""
response = serve(*args, **keywords)
if keywords["path"].endswith(".webp"):
response.headers["Content-Type"] = "image/webp"
return response

Wyświetl plik

@ -1,7 +1,6 @@
from django.conf import settings as djsettings
from django.contrib import admin as djadmin
from django.urls import path, re_path
from django.views.static import serve
from activities.views import compose, explore, follows, posts, search, timelines
from api.views import api_router, oauth
@ -219,7 +218,7 @@ urlpatterns = [
# Media files
re_path(
r"^media/(?P<path>.*)$",
serve,
core.custom_static_serve,
kwargs={"document_root": djsettings.MEDIA_ROOT},
),
]