将图像导入django页面

时间:2017-04-13 09:49:15

标签: python django image

我正在尝试将图片附加到我的页面(按https://docs.djangoproject.com/en/1.10/howto/static-files/#configuring-static-files),但无法显示:http://prntscr.com/evwern

settings.py

STATIC_URL = '/portfolio/'

urls.py

urlpatterns = [
    url(r'^$', index, name='index'),]

的index.html

{% load static %}
<img src="{% static '/catalog/static/portfolio/oh_i_ah.jpg' %}" alt="My image" style="width:640px;height:473px;"/>

图片路径:mysite / portfolio / catalog / static / portfolio / oh_i_ah.jpg

如果我尝试在新标签页中打开图像,则会抛出:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/portfolio/catalog/static/portfolio/oh_i_ah.jpg

2 个答案:

答案 0 :(得分:0)

在settings.py

import os
STATIC_URL = '/portfolio/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'), )
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')

python manage.py collectstatic
index.html中的

{% load staticfiles %}
<img src="{% static '/portfolio/oh_i_ah.jpg' %}" alt="My image" style="width:640px;height:473px;"/>

答案 1 :(得分:0)

1)您没有指定您的应用目录名称。需要知道应用程序/目录名称才能正确回答您的问题。 2)你没有正确使用'静态'。 3)您没有指定是使用默认的django开发服务器还是某些生产服务器。我假设它是DEBUG = True的默认django开发服务器。

<强>解决方案

让我们想象一下:你有一个名为app0的应用程序(假设您使用“python manage.py startapp app0”创建了该应用程序)并且您在其中创建了一个名为“static”的目录(以下默认的django约定优于配置)。在这个'静态'目录中你创建了另一个名为'app0'的目录。所以,你要把你的文件放在“/ app0 / static / app0”里面。所以,你的文件路径变成:“/app0/static/app0/oh_i_ah.jpg”

现在,在settings.py

中正确设置STATIC_ROOT

在模板文件中,将文件称为{%static“app0 / oh_i_ah.jpg”%}(不带前导斜杠)。

现在,一切都会好的。

是的,如果在settings.py中正确配置STATICFILES_DIRS,STATIC_ROOT,则可以将静态文件放在任何app目录之外。

请尽可能详细地描述您的问题,以便我们以正确的方式为您提供帮助。