You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python/Django新手求助:HTML页面无法显示图片问题

Fixing Image Display Issues in Django Templates for Beginners

Hey there! As someone new to Python and Django, it makes total sense that you're hitting this image display snag—relative paths like ./assets/images/... don't work the way they do in plain HTML when you're using Django. Let's walk through the correct steps to get your image showing up:

1. First, Configure Django's Static File Settings

Django has a specific system for handling static assets (like images, CSS, JS) to keep things organized. Open your settings.py file and make sure these lines are set up correctly:

# At the top, you'll see BASE_DIR defined—this points to your project root
BASE_DIR = Path(__file__).resolve().parent.parent

# Static file base URL
STATIC_URL = '/static/'

# Tell Django where to look for your project-wide static files
STATICFILES_DIRS = [
    BASE_DIR / "assets",  # This assumes your 'assets' folder lives in the project root
]

2. Load Static Tags in Your Template

Django templates need a special tag to reference static files properly. Add this line at the very top of your teste.html file:

{% load static %}

Then update your image tag to use the {% static %} template tag instead of a relative path:

<img src="{% static 'images/3ed274bc061c771ef0b153111a6fe932_logocartorio.png' %}" alt="Cartorio Logo">

This tag automatically builds the correct URL based on your STATIC_URL setting, so you don't have to worry about messy relative paths anymore.

3. Double-Check Your File Structure

Make sure your files are arranged in the right place (this is a super common mistake!). Your project should look something like this:

your_project_name/
├── assets/
│   └── images/
│       └── 3ed274bc061c771ef0b153111a6fe932_logocartorio.png
├── your_app/
│   ├── views.py
│   └── templates/
│       └── teste.html
└── settings.py

If your assets folder is inside your app directory instead of the project root, adjust the STATICFILES_DIRS path to point to it (e.g., BASE_DIR / "your_app" / "assets").

4. Verify Your View and Route

Just to be thorough, confirm your view in iddigital.views.py is correctly rendering the template:

from django.shortcuts import render

def teste(request):
    return render(request, 'teste.html')

And make sure you've added a route to this view in your project's urls.py so you can access the page properly.

Quick Troubleshooting Tips

  • Restart your development server: If you changed settings.py, you need to stop and restart python manage.py runserver for changes to take effect.
  • Check for typos: Even a tiny mistake in the filename or path (like uppercase vs lowercase letters) can break things—Django is case-sensitive on most systems.
  • Test the image URL directly: Once you've set everything up, try visiting http://localhost:8000/static/images/3ed274bc061c771ef0b153111a6fe932_logocartorio.png in your browser. If it loads, the issue was with your template; if not, double-check your file structure and settings.py config.

You've got this—static files are one of the first tricky parts of Django, but once you get the hang of the system, it's smooth sailing!

内容的提问来源于stack exchange,提问作者Patricia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:07:48