Страница администратора и главная страница не работают после установки окружения в Django

Я создал приложение с Django backend и React frontend.

В проекте я помещаю файл .env в корневую папку

my_project/
    .env
    my_app/
       __init__.py
       apps.py
       settings.py
       urls.py
       views.py
       wsgi.py
    frontend/
       public/
       src/
       build/
         static/
           js/
             main.4dfd1f01.js
           css/
             main.5c1407a3.css

    
    

Затем я использую "django-environ" в качестве библиотеки env и делаю следующие настройки в файле setting.py

import os
import environ

ENV = environ.Env(
    DEBUG=(bool, False)
)

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Take environment variables from .env file
environ.Env.read_env(os.path.join(BASE_DIR, '.env'))

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'frontend/build'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]


...

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.0/howto/static-files/

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    BASE_DIR / 'frontend/build/static'
]

urls.py:

from django.contrib import admin
from django.urls import path, include
from django.views.generic import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sub-app/', include('sub-app.urls')),
    path('', TemplateView.as_view(template_name='index.html')),
]

Все работает нормально, кроме моего корневого URL (localhost:8000/) и URL администратора (localhost:8000/admin):

  1. The problem on admin:

    when I input localhost:8000/admin in the browser, it simply redirects to a nonsense URL (like: http://127.0.0.1:8000/127.0.0.1:8000/sub-app/ca/admin/) **I don't even have any 'ca' anywhere in any of my urls.py files

    The wired thing is that even I comment out sub-app from INSTALLED_APPS in setting.py and also comment out its path in urls.py, this strange url redirect issue is still there

  2. The problem on root page:

    I always get the following errors when I land on the root page:

    a. "GET /static/css/main.5c1407a3.css HTTP/1.1" 404 1832

    b. "GET /static/js/main.4dfd1f01.js HTTP/1.1" 404 1830

И самая важная часть:

Я заметил, что две вышеупомянутые проблемы на страницах admin и root полностью исчезнут, если я закомментирую следующую строку в файле setting.py:

environ.Env.read_env(os.path.join(BASE_DIR, '.env')) 

Кто-нибудь знает, почему такое странное поведение произошло только тогда, когда я внедрил env файл в мое Django-React APP?

Вернуться на верх