From e33654a6b6d40d581bac80bb37fa57d3181f7f46 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Tue, 9 Jul 2024 09:58:52 -0400 Subject: [PATCH] static hosting --- backend/.gitignore | 5 ++++- backend/Dockerfile | 2 ++ backend/server/demo/settings.py | 13 +++++++++++++ backend/server/requirements.txt | 3 ++- docker-compose.yml | 4 ++-- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/backend/.gitignore b/backend/.gitignore index 5aac9d76..cb5a690a 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -113,4 +113,7 @@ demo/react-spa/yarn.lock # Visual Studio Code .vscode/ -*/media/* \ No newline at end of file +*/media/* + +/static/* +/staticfiles/* \ No newline at end of file diff --git a/backend/Dockerfile b/backend/Dockerfile index 219fe2a3..a093cdfd 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -24,6 +24,8 @@ RUN pip install -r requirements.txt # Copy the Django project code into the Docker image COPY ./server /code/ +RUN python3 manage.py collectstatic --verbosity 2 + # Set the entrypoint script COPY ./entrypoint.sh /code/entrypoint.sh RUN chmod +x /code/entrypoint.sh diff --git a/backend/server/demo/settings.py b/backend/server/demo/settings.py index 73b9506c..69e25a02 100644 --- a/backend/server/demo/settings.py +++ b/backend/server/demo/settings.py @@ -13,6 +13,7 @@ from dotenv import load_dotenv from datetime import timedelta from os import getenv +from pathlib import Path # Load environment variables from .env file load_dotenv() @@ -61,6 +62,7 @@ ) MIDDLEWARE = ( + 'whitenoise.middleware.WhiteNoiseMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', @@ -69,6 +71,7 @@ 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'allauth.account.middleware.AccountMiddleware', + ) # For backwards compatibility for Django 1.8 @@ -117,7 +120,11 @@ # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.7/howto/static-files/ + +BASE_DIR = Path(__file__).resolve().parent.parent +STATIC_ROOT = BASE_DIR / "staticfiles" STATIC_URL = '/static/' + MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] @@ -151,6 +158,12 @@ } +STORAGES = { + "staticfiles": { + "BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage", + }, +} + AUTH_USER_MODEL = 'users.CustomUser' EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' diff --git a/backend/server/requirements.txt b/backend/server/requirements.txt index 4f3c1a56..d62e8285 100644 --- a/backend/server/requirements.txt +++ b/backend/server/requirements.txt @@ -8,4 +8,5 @@ django-cors-headers==4.4.0 coreapi==2.3.3 python-dotenv psycopg2-binary -Pillow \ No newline at end of file +Pillow +whitenoise \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index cc5a1282..163ef083 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,8 +23,8 @@ services: - postgres_data:/var/lib/postgresql/data/ server: - # build: ./backend/ - image: ghcr.io/seanmorley15/adventurelog-backend:latest + build: ./backend/ + #image: ghcr.io/seanmorley15/adventurelog-backend:latest environment: - PGHOST=db - PGDATABASE=database