django中的静态图像/媒体文件

时间:2019-12-16 08:59:21

标签: django

我无法在模板中使用django加载静态文件,我的文件如下所示

Settings.py

STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIR = [
STATIC_DIR,
]

]

<!DOCTYPE html>
{% load static %}

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>First App</title>
</head>
<body>
<h1>Hello this is index.html!</h1>
<img src="{% static 'images/mark.jpg' %}" alt="My image">
</body>
</html>

Template / index.html

{{1}}

项目目录

This is the projec t directory`

2 个答案:

答案 0 :(得分:1)

还将这些代码添加到您的主网址文件中

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

并在设置中也添加此行

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media")

答案 1 :(得分:1)

STATICFILES_DIR列表应命名为 STATICFILES_DIRS

In developmentrunserverDEBUG=True一起运行就足够了。


要投放静态文件in production

    建议使用
  • 使用外部Web服务器(在生产环境中,您很可能在Django前面安装一个或Web代理服务器)。致电collectstatic 并通过网络服务器提供结果static_root目录

  • 或者您可以将它们上传到CDN(AWS S3,CLoudflare)

  • 或者可以使用Whitenoise

  • 让django为他们服务
  • 最不推荐,但仍然可行-通过添加静态网址在开发过程中与django一起使用