невозможно отобразить изображение в шаблоне Django - PullRequest
0 голосов
/ 04 июня 2018

Я хочу показать изображение (с именем 1.png) в шаблоне hashtag_details.html (оба изображения и эти файлы находятся в одном каталоге)

project tree

hashtag_details.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Trends Result</title>
    <!--script>
        window.setTimeout(function(){
            window.location.href = "{{ request.path }}";
        }, 3000);
    </script-->
</head>
<body>

<img src="1.png">

</body>
</html>

так выглядит мой файл settings.py.пожалуйста, проверьте и дайте мне знать, что не так.Я не знаю, где хранить изображения и откуда к ним обращаться.

import os


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['Trends/templates/trends'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/

STATIC_URL = '/static/'

1 Ответ

0 голосов
/ 04 июня 2018

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

Например:

MEDIA_URL = '/static/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')

Во-вторых, вам нужно добавить его в свои urlpatterns, чтобы django знал, где его обслуживать.

urlpatterns = [
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

После того, как вы выполнили эти два шага, вы можете проверить, все ли вы сделали правильно в браузере.Например: http:localhost:8000/static/media/your_image.png.Там вы увидите только изображение.

В принципе ваш клиентский код выполняет Http-Get на сервер.Поэтому вам нужно отправить полный URL-адрес, как показано выше, если вы хотите предоставить его напрямую клиенту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...