Как я включаю файлы изображений в шаблоны Django?

Эй, есть библиотека с открытым исходным кодом под названием «Libstreaming», которая используется для потоковой передачи голоса / видео по сети с использованием WIFI. Просто посмотрите на это:

https://github.com/fyhertz/libstreaming

Есть также несколько примеров, пожалуйста, посмотрите на это:

https://github.com/fyhertz/libstreaming-examples

Я использовал библиотеку для потоковой передачи RTSP Audio по сети, надеюсь, это может быть полезно.

64
задан Tony 23 May 2009 в 14:51
поделиться

3 ответа

В производственной среде у вас просто будет HTML, сгенерированный из вашего шаблона, указывающий на то место, где на хосте хранятся медиафайлы. Так что в вашем шаблоне будет, например, только

<img src="../media/foo.png">

И тогда вы просто убедитесь, что там есть каталог с соответствующими файлами.

во время разработки - это другая проблема. Документы django объясняют это кратко и достаточно ясно, чтобы эффективнее было связать там и ввести здесь, но в основном вы определяете представление для носителя сайта с жестко запрограммированным путем к месту на диске.

Справа здесь .

35
ответ дан 24 November 2019 в 15:43
поделиться

Ваш

<img src="/home/tony/london.jpg" />

будет работать с HTML-файлом, читаемым с диска, поскольку он будет предполагать, что URL-адрес - file: /// home / ... . Однако для файла, обслуживаемого с веб-сервера, URL-адрес будет выглядеть примерно так: http://www.yourdomain.com/home/tony/london.jpg , что может быть недопустимым URL-адресом, а не тем, что вы действительно означает.

О том, как обслуживать и где размещать статические файлы, можно прочитать в документе . В основном, если вы используете сервер разработки django, вы хотите показать ему место, где находятся ваши медиафайлы, а затем сделать так, чтобы ваш urls.py обслуживал эти файлы (например, используя некоторые / static / url prefix).

Потребует, чтобы вы поместили что-то вроде этого в ваш urls.py :

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'}),

В производственной среде вы хотите пропустить это и сделать так, чтобы ваш http-сервер ( apache , lighttpd и т. Д.) Обслуживал статические файлы.

5
ответ дан 24 November 2019 в 15:43
поделиться

Попробуйте это,

settings.py

# typically, os.path.join(os.path.dirname(__file__), 'media')
MEDIA_ROOT = '<your_path>/media'
MEDIA_URL = '/media/'

urls.py

urlpatterns = patterns('',
               (r'^media/(?P<path>.*)$', 'django.views.static.serve',
                 {'document_root': settings.MEDIA_ROOT}),
              )

.html

<img src="{{ MEDIA_URL }}<sub-dir-under-media-if-any>/<image-name.ext>" />

Caveat

Остерегайтесь! использование Context () даст вам пустое значение для {{MEDIA_URL}} . Вы должны использовать RequestContext () , вместо этого.

Надеюсь, это поможет.

66
ответ дан 24 November 2019 в 15:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: