2016-01-11 10 views
0

Я проверил одну и ту же проблему и нашел несколько советов, однако ни один из них не работал. В режиме отладки все работает как шарм. Вы можете получить доступ к файлу с адресом 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) 
+0

В процессе производства вы должны обслуживать каталог STATIC_ROOT с веб-сервера, такого как nginx или apache, почему вы пытаетесь обслуживать их из Django? Есть ли ограничения на вашей платформе? –

+0

В дополнение к ответу Пауло Скардинс, проверьте, настроили ли вы '+ static (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)' в своем urls.py –

+0

@PauloScardine Это сервер Apache или мне не хватает понимания чего-то, и они обслуживаются через каталог? Обновлено мое сообщение с моим urls.py. Я не думаю, что есть какие-то ограничения. – dk1990

ответ

0

Вам необходимо настроить веб-сервер для обслуживания статического и средств массовой информации файлы.

Django не предназначен для обслуживания. Вместо этого Django будет просто ссылаться на префиксы STATIC_URL и MEDIA_URL для поиска/загрузки файлов.

В режиме отладки веб-демон запускается для временного хранения файлов, которые не предполагается использовать в производстве.