Django не отображает статические файлы изображений, локализованные в каталоге MEDIA
Я относительно новичок в Django. У меня есть приложение, в котором я указываю MEDIA_URL и MEDIDA_ROOT в файле settings.py в корне проекта. Мой парный проект выглядит следующим образом:
/
../files
../files/media
../files/media/logo.png
../solid/settings.py
../solid/urls.py
/web/templates (contains all my HTML)
внутренние настройки у меня
MEDIA_ROOT = BASE_DIR / 'files'
MEDIA_URL = '/media/'
DEFAULT_FILE_STORAGE = BASE_DIR /'files'
и файлы в директории "media" имеют подпапку images и logo.png
в моем шаблоне (index.html) в каталоге web/template я пытаюсь сослаться на него
<img src="{{% MEDIA_ROOT %}}/images/ourlogo.png" class="" alt="Logo" height="40">
В файле solid/urls.py у меня есть:
urlpatterns = [
path('admin/', admin.site.urls),
path('',web_views.index,name="index"),
######################################################
path('login/',login_page,name="login"),
path('logout/',log_out,name="logot"),
path('register/',register,name="register"),
#######################################################
path('upload/',web_views.upload,name="upload"),
path('list/',web_views.list_uploads,name="list"),
path('details/<int:oid>', web_views.view_download,name='view_download'),
path('download/<str:filename>', web_views.download_file,name='download_file'),
#######################################################
path('paypal/', include("paypal.standard.ipn.urls")),
path('payment/',web_views.upgrade,name="payment"),
path('paypal-cancel/', PaypalCancelView.as_view(), name='paypal-cancel'),
path('paypal-return/', PaypalReturnView.as_view(), name='paypal-return'),
#######################################################
]+static('s/',document_root=settings.MEDIA_ROOT)
изображение не рендерится.
settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATICFILES_DIRS =[
os.path.join(BASE_DIR,'project_name/static')
]
MEDIA_URL ='/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
project_name/urls.py добавьте эти две строки с urlspatterns
urlpatterns = [
path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
если необходимо получить изображение из базы данных
<img src="{{ img.photo_2.url }}" alt="" class="img-fluid">
здесь "img" - имя ключа словаря. photo_2 - имя поля базы данных. и чтобы показать изображение, вы поставили .url после этого.
статическое изображение
<link href="{% static 'img/favicon.png' %}" rel="icon">