#django #django-urls #production #pythonanywhere #django-uploads
#django #django-urls #производство #pythonanywhere #django-загрузки
Вопрос:
Я работаю над блогом, который необходимо запустить в производство, проблема возникает, когда я настраиваю его на производство. Все статические файлы загружаются полностью, кроме изображений, которые я загружаю. Я пробовал использовать изображения, ранее загруженные до их установки в рабочей среде, а также после. Скриншот веб-страницы
settings.py
DEBUG = False
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'core.apps.CoreConfig',
'unities.apps.UnitiesConfig',
'ckeditor',
'ckeditor_uploader',
'django_cleanup.apps.CleanupConfig'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'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',
'whitenoise.middleware.WhiteNoiseMiddleware',
]
...
STATIC_URL = '/static/'
STATIC_ROOT= os.path.join(BASE_DIR,'staticfiles')
STATICFILES_DIRS=(
os.path.join(BASE_DIR,'static'),
)
STATICFILES_STORAGE='whitenoise.storage.CompressedManifestStaticFilesStorage'
# Media files
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# CKEditor Settings
CKEDITOR_ALLOW_NONIMAGE_FILES = False
CKEDITOR_UPLOAD_PATH = 'ckeditor_uploads/'
urls.py
urlpatterns = [
path('ckeditor/', include('ckeditor_uploader.urls')),
path('admin/', admin.site.urls),
path('', include('core.urls')),
path('<slug:unity_slug>/', include('unities.urls')),
]
urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns = static(settings.STATIC_URL,document_root=settings.STATIC_ROOT
Я использую pythonanywhere
Комментарии:
1. Я импортировал статику в urls.py
2. Вы просматривали журнал доступа к веб-серверу, чтобы увидеть фактический URL-адрес, запрашиваемый для изображений? И если да, то правильный ли это URL-адрес?
3. Я так не думал, я проверю это
4. Допустим, изображения загружаются в каталог media / uploaded_images. и имя изображения — test_image.png, URL-адрес, который вы должны увидеть в атрибуте src тега img, должен быть /media/uploaded_images/test_image.png . Проверьте src attr тега <img> . какой источник вы предоставляете? image.name или image.url ?
5. Возможно, это просто ошибка копирования-вставки, но у вас отсутствует paren в urlpatterns для STATIC_URL. Btw. вы смотрели страницу справки PythonAnywhere для отладки статических файлов?
Ответ №1:
вы импортировали свою статику поверх urls.py ? Я использую django3.0
from django.conf.urls.static import static
и для нижней части urls.py Я бы закодировал так
if settings.DEBUG:
urlpatterns = static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
для settings.py Я только так кодирую
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
Комментарии:
1. Да, я импортировал статику в urls.py
2. У меня есть checkit, и у меня это так же