Django css не рендеринг в производствеCSS

Разбираемся в CSS
Ответить
Anonymous
 Django css не рендеринг в производстве

Сообщение Anonymous »

В моем приложении Django5 все работает в разработке в рамках Venv, но как только я загружаю приложение в контейнер Docker с Debug = false, я, кажется, не получаю должным образом. Что действительно странно, так это загрузка CSS, кажется правильным, я просто не получаю свой индивидуальный образ и цвета CSS Hero, а администратор CSS также сломан. Я использую снаряжение с Nginx, обслуживающим статические данные. Я вижу свой favicon.ico, который подается из той же / статической / папки, а папки CSS, JS и т. Д. Все существуют в контейнере NGINX, как и ожидалось. Я просматриваю источник и нажимаю на ссылки, и они все там.from pathlib import Path
import os
import environ

env = environ.Env(
DEBUG=(bool, False)
)
BASE_DIR = Path(__file__).resolve().parent.parent
environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
ALLOWED_HOSTS = ['*']
.
.
.
STATIC_URL = '/static/'
STATIC_ROOT = '/usr/share/nginx/html/static/'
< /code>
в моем корневом urls.py:
urlpatterns = [
path("admin/", admin.site.urls),
.
.
.
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
< /code>
my dockerfile-compose.yaml включает в себя CollectStatic: < /p>
web:
build:
context: .
dockerfile: Dockerfile
command: >
sh -c "python manage.py collectstatic --noinput
&& python manage.py migrate
&& supervisord -c /etc/supervisor/conf.d/supervisord.conf"
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
- rabbitmq
environment:
- DATABASE_URL=postgres://mysite:fakepassword@db:5432/mysite
- CELERY_BROKER_URL=amqp://guest@rabbitmq//
< /code>
my dockerfile.nginx включает копирование статических данных в папку в его (отдельном) контейнере: < /p>
# Use the official Nginx image from the Docker Hub
FROM nginx:latest

# Copy the Nginx configuration file to the container
COPY nginx.conf /etc/nginx/nginx.conf

# Copy the SSL certificates to the container
COPY certificate.crt.pem /etc/nginx/ssl/certificate.pem
COPY certificate.key.pem /etc/nginx/ssl/private_key.pem

# Copy the static files from the Django container
COPY staticfiles /usr/share/nginx/html/static
COPY media /usr/share/nginx/html/media

# Expose port 443 for HTTPS
EXPOSE 443
< /code>
В контейнере Nginx (URL -адрес сайта заменен MySite) Я вижу: < /p>
nginx-1 | 172.18.0.1 - - [18/Feb/2025:20:39:49 +0000] "GET / HTTP/1.1" 200 6030 "https://mysite/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
nginx-1 | 172.18.0.1 - - [18/Feb/2025:20:39:49 +0000] "GET /static/css/styles.css HTTP/1.1" 304 0 "mysite" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
nginx-1 | 172.18.0.1 - - [18/Feb/2025:20:39:59 +0000] "GET / HTTP/1.1" 200 6030 "https://mysite/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
nginx-1 | 172.18.0.1 - - [18/Feb/2025:20:39:59 +0000] "GET /static/css/styles.css HTTP/1.1" 200 2269 "https://mysite/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
nginx-1 | 172.18.0.1 - - [18/Feb/2025:20:39:59 +0000] "GET /static/images/favicon.ico HTTP/1.1" 200 5879 "https://mysite/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
nginx-1 | 172.18.0.1 - - [18/Feb/2025:20:39:59 +0000] "GET /static/images/favicon.ico HTTP/1.1" 200 5879 "https://mysite/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
< /code>
Так что я, кажется, получаю 200 в своих реальных файлах CSS, но они не отражаются в моей программе. Ни один из файлов администратора CSS не отображается, но их загружают. Я озадачен, любая помощь будет оценена спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... production
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «CSS»