В Django 2.2, когда у меня DEBUG=True
, все мои статические файлы отображаются нормально. Но когда я установил DEBUG=False
для проверки своих производственных параметров, все статические URL-адреса файлов неожиданно возвращают 404 ошибки.
У меня есть такая структура проекта:
myproject/
myproject/
settings.py
urls.py
manage.py
static/
thumbnails/
image.png
Мои соответствующие статические настройки в settings.py
:
STATIC_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'static'))
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
ROOT_URLCONF = 'myproject.urls'
STATIC_URL = '/static/'
DEBUG = False
И мой urls.py
выглядит следующим образом:
import os
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Почему URL-адрес, такой как http://localhost:8000/static/thumbnails/image.png
, работает нормально при включенной отладке, но возвращает 404 при отладкевыключен?