Django写了个代码,有一个网页,显示media文件夹里的一个图片,本地运行的时候,本地访问127.0.0.1都没问题,正常显示
但放到云服务器上,图片就显示不出来了,但能显示有一个图片?
之前也是这个毛病,就是不显示图片 视频这种,文字正常的,求解
感觉是图片跨域问题,看看控制台 有报错信息吗
在 Django 中,为了让浏览器能够访问到 media 文件夹里的图片,需要进行以下几个步骤:
在 settings.py 文件中设置 MEDIA_ROOT 和 MEDIA_URL。例如:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
其中,MEDIA_ROOT 是本地文件系统中的储存路径,MEDIA_URL 是可以通过浏览器访问到 MEDIA_ROOT 的 URL 路径。
在项目的 urls.py 文件中添加一个 URL 路由。例如:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这个路由的作用是将浏览器发出的请求中的 MEDIA_URL
部分与 MEDIA_ROOT
对应,使得浏览器能够访问到对应的图片。
在 HTML 模板中使用 {{ MEDIA_URL }}
占位符来引用图片。例如:
<img src="{{ MEDIA_URL }}image.jpg">
这样浏览器就能够正确地找到图片并进行显示。
已经按照上述步骤进行配置,但仍然无法正常显示图片,可能是因为文件路径或 URL 路径配置不正确,或者服务器上的 media 文件夹没有设置正确的读写权限。可以检查一下路径和权限设置是否正确,或者尝试在服务器终端上手动访问图片文件以确认其是否可访问。