2017-02-20 12 views
1

Я хочу сделать веб-сайт, который отображает дерево файлов в Интернете и печатает изображение/видео в Интернете.
Я планирую напечатать его с помощью html-тега img и video. Однако есть некоторые проблемы с путём. Большинство моих статических файлов (например, видео или img) вне папки проекта django.
Например, источник и источник изображения django на /Users/Knight/My-site/Damotorie_cafe/views.py и изображение на /Applications/MAMP/practice
Я попытался получить относительный путь с кодом python и использовать его для атрибута src.
Тот же путь работает хорошо, когда я не использую django и просто открываю его с помощью локального веб-браузера, однако, когда я его открываю с помощью django, возникает ошибка.Django показать изображение/видео, которое находится за пределами статической папки

Я стартер в джанго. Может кто-нибудь мне помочь? (я искал его перед тем, как задавать вопросы, но большинство вопросов касательно загрузки не отображается.)

ответ

1

Вам необходимо настроить свои статические файлы в Django. В settings.py, вам нужно настроить:

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "static"), 
    '/path/to/your/images/outside/web/tree/' 
] 
STATIC_URL = '/static/' 

В развитии, вы должны установить это в базовом файле urls.py:

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^login', auth_views.login, name='login'), 
    ... 
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

Затем в файлах шаблонов, первый набор это в верхней части файла шаблон, так что вы загрузите «статический» тег:

{% load staticfiles %} 

Затем вы используете статические переменный:

<img src="{% static 'path/img' %}"/> 

Хитрость заключается в том, что Django ищет через STATICFILES_DIRS этот «путь» в вашем файле шаблона, поэтому конец «путь» должен отличаться от всего, что у вас есть в других перечисленных STATICFILES_DIRS. Он ищет список по порядку и найдет первый, который соответствует, в любом случае.

Смежные вопросы