gpt4 book ai didi

Django 不显示图像

转载 作者:行者123 更新时间:2023-12-02 06:33:39 25 4
gpt4 key购买 nike

我从 django 应用程序开始,尝试在主页中显示图像。但图像没有显示。

我的设置.py:

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

我的urls.py:

urlpatterns = patterns('',
# Examples:
# url(r'^$', 'myapp.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),

url(r'^admin/', include(admin.site.urls)),
url(r'',include('users.urls')),
)

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

我的家.html:

<html>
<head>
<title>MY SITE</title>
</head>
<body>
<img src="/media/image/myimage.jpg" alt="my image"/>
Welcome to my site
</body>
</html>

我显示的是文本我的图像而不是图像

最佳答案

好的,所以我设置了一个简单的“配对”工作示例,这样就不会丢失任何移动部件。一些注意事项:

这意味着您需要对您的媒体引用进行修改。 ( MEDIA 实际上是用于文件上传的)并且您不需要欺骗 urls.py 文件中的 staticfiles_urlpatterns 。当您将“django.contrib.staticfiles”添加到 settings.py 时,您会立即获得此行为

概述:这是您的文件树布局在 django 1.6 中的样子,以及我在本答案中引用的文件结构。

├── djproj
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
├── manage.py
└─── myapp
   ├── admin.py
   ├── __init__.py
   ├── models.py
   ├── static
   │   └── myapp
   │   └── myimage.jpg
   ├── templates
   │   └── index.html
   ├── tests.py
   └── views.py

第 1 步:确保 django.contrib.staticfiles 包含在您的 INSTALLED_APPS 中。

第 2 步:在您的设置文件中,定义 STATIC_URL,例如:

STATIC_URL = '/static/'

第 3 步:将您的 home.html 更改为如下所示(我在示例中使用了 index.html)

[ PROJECT_HOME/myapp/templates/index.html ]

<html>
<head>
<title>MY SITE</title>
</head>
<body>
{% load staticfiles %}
<img src="{% static "myapp/myimage.jpg" %}" alt="My image"/>
Welcome to my site
</body>
</html>

请务必阅读 django-1.6 staticfiles documentation与 STATICFILES_STORAGE 相关,以便您了解这些模板标签正在为您购买什么。提示:python manage.pycollectstatic

第 4 步:(您可能已经这样做了,但我没有看到它)确保 TEMPLETE_DIRS 在您的 settings.py 中定义并包含您的 home.html (这里的关键是django 的模板引擎需要为此提供服务,因为我们将使用一些模板标签)

[ PROJECT_HOME/djproj/settings.py ]

TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
BASE_DIR + '../myapp/templates',
)

第 5 步:构建一个呈现您的 home.html 页面的 View 。

[ PROJECT_HOME/myapp/views.py ]

from django.shortcuts import render_to_response

def index( request ):
return render_to_response('index.html')

因为这有点复杂,并且这里有几个移动部分:here is a changeset显示完整的“更改”

如果其中任何一个令人困惑,您可以粗略地拉取整个 github 项目。 django-staticfiles-setupexample

最后说明: 静态文件在 django 中并不总是以这种方式处理。 MEDIA 目录曾经是您想要的设置 attr。所以这个答案适用于 Django 1.6(在 django 版本 1.3 中添加了静态文件)(在 django 1.5 中更改了目录布局)。

您可以(正如您尝试做的那样)将媒体目录硬连接到 STATIC 定义。不过我不推荐这样做。这就是为什么我没有描述如何这样做。

关于Django 不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com