Я проверил одну и ту же проблему и нашел несколько советов, однако ни один из них не работал. В режиме отладки все работает как шарм. Вы можете получить доступ к файлу с адресом www, и пользователь может загрузить изображение. Теперь я отключил отладку, сначала я использовал параметры отладки только при отключенной отладке. Загрузка по-прежнему работала, но изображение не могло быть загружено через www (ошибка 404). Затем я изменил его на настройки вживую, теперь загрузка не работает, а файлы media_root не будут отправлены через www.Django Production Issue Serving Media Корневые файлы
Я проверил на своем сервере и изменил доступ к записи читать, не помогло.
Любая идея о том, как исправить это?
settings.py отладки:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static_in_pro", "static_root")
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static_in_pro", "our_static"),
#'/var/www/static/',
)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static_in_pro", "media_root")
settings.py жить:
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/vhosts/bspotted1/app/static_in_pro/static_root/'
STATICFILES_DIRS = (
'/var/www/vhosts/bspotted1/app/static_in_pro/',
#'/var/www/static/',
)
MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/www/vhosts/bspotted1/app/static_in_pro/media_root/'
urls.py:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
В процессе производства вы должны обслуживать каталог STATIC_ROOT с веб-сервера, такого как nginx или apache, почему вы пытаетесь обслуживать их из Django? Есть ли ограничения на вашей платформе? –
В дополнение к ответу Пауло Скардинс, проверьте, настроили ли вы '+ static (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)' в своем urls.py –
@PauloScardine Это сервер Apache или мне не хватает понимания чего-то, и они обслуживаются через каталог? Обновлено мое сообщение с моим urls.py. Я не думаю, что есть какие-то ограничения. – dk1990