четверг, 4 июля 2013 г.

MEDIA_ROOT и MEDIA_URL в Django

Параметры MEDIA_ROOT и MEDIA_URL нужны для указания места хранения файлов, загруженных пользователями.
Вот, что написано в комментариях к данным параметрам в settings.py:
# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = 'media/'

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = 'http://127.0.0.1:80/media/'

Но все хорошо, если сайт у нас запущен по адресу http://127.0.0.1:80/. Попробовал я запустить его по адресу http://192.168.0.5/, чтобы сделать доступным для компьютеров моей локальной сети, как все картинки перестали отображаться:






 Чтобы этого избежать MEDIA_URL нужно задать относительно:

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = 'media/'

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = '/media/'

После этого картинки будут отображаться всегда, по какому бы адресу мы сайт не запустили, используя встроенный в Django сервер разработки: manage.py runserver 192.168.0.5:80.

Конечно, при реальном развертывании проекта будут использоваться другие средства. Так, к примеру, на сайте Екатеринбургского вуза uapa.ru используется связка apache и nginx (отдача статики - картинок, документов).

Комментариев нет:

Отправить комментарий