diff options
author | 2022-08-21 22:56:16 +0400 | |
---|---|---|
committer | 2022-09-30 18:48:02 +0400 | |
commit | cd815d3e928e8f83e74f10389110ddb615199342 (patch) | |
tree | 4f60250c0186930578f2d616a3104437caa67678 | |
parent | Bump Developer Dependencies (diff) |
Fix Static Build
Remove all unnecessary middleware and return a proper response for
redirects to fix static builds.
Signed-off-by: Hassan Abouelela <[email protected]>
-rw-r--r-- | pydis_site/apps/redirect/urls.py | 5 | ||||
-rw-r--r-- | pydis_site/settings.py | 55 |
2 files changed, 33 insertions, 27 deletions
diff --git a/pydis_site/apps/redirect/urls.py b/pydis_site/apps/redirect/urls.py index f7ddf45b..f86fe665 100644 --- a/pydis_site/apps/redirect/urls.py +++ b/pydis_site/apps/redirect/urls.py @@ -3,6 +3,7 @@ import re import yaml from django import conf +from django.http import HttpResponse from django.urls import URLPattern, path from django_distill import distill_path @@ -53,7 +54,7 @@ def map_redirect(name: str, data: Redirect) -> list[URLPattern]: class RedirectFunc: def __init__(self, new_url: str, _name: str): - self.result = REDIRECT_TEMPLATE.format(url=new_url) + self.result = HttpResponse(REDIRECT_TEMPLATE.format(url=new_url)) self.__qualname__ = _name def __call__(self, *args, **kwargs): @@ -95,7 +96,7 @@ def map_redirect(name: str, data: Redirect) -> list[URLPattern]: return [distill_path( data.original_path, - lambda *args: REDIRECT_TEMPLATE.format(url=new_redirect), + lambda *args: HttpResponse(REDIRECT_TEMPLATE.format(url=new_redirect)), name=name, )] diff --git a/pydis_site/settings.py b/pydis_site/settings.py index e08a2630..cb05956b 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -43,12 +43,13 @@ if GITHUB_APP_KEY and (key_file := Path(GITHUB_APP_KEY)).is_file(): # Allow the OAuth key to be loaded from a file GITHUB_APP_KEY = key_file.read_text(encoding="utf-8") -sentry_sdk.init( - dsn=env('SITE_DSN'), - integrations=[DjangoIntegration()], - send_default_pii=True, - release=f"site@{GIT_SHA}" -) +if not env("STATIC_BUILD"): + sentry_sdk.init( + dsn=env('SITE_DSN'), + integrations=[DjangoIntegration()], + send_default_pii=True, + release=f"site@{GIT_SHA}" + ) # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -128,25 +129,29 @@ INSTALLED_APPS = [ if not env("BUILDING_DOCKER"): INSTALLED_APPS.append("django_prometheus") -NON_STATIC_MIDDLEWARE = [ - 'django_prometheus.middleware.PrometheusBeforeMiddleware', -] if not env("STATIC_BUILD") else [] - -# Ensure that Prometheus middlewares are first and last here. -MIDDLEWARE = [ - *NON_STATIC_MIDDLEWARE, - - 'django.middleware.security.SecurityMiddleware', - 'whitenoise.middleware.WhiteNoiseMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - - 'django_prometheus.middleware.PrometheusAfterMiddleware' -] +if env("STATIC_BUILD"): + # The only middleware required during static builds + MIDDLEWARE = [ + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + ] +else: + # Ensure that Prometheus middlewares are first and last here. + MIDDLEWARE = [ + 'django_prometheus.middleware.PrometheusBeforeMiddleware', + + 'django.middleware.security.SecurityMiddleware', + 'whitenoise.middleware.WhiteNoiseMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + + 'django_prometheus.middleware.PrometheusAfterMiddleware' + ] ROOT_URLCONF = 'pydis_site.urls' |