django开发服务器不提供静态文件

时间:2020-03-26 08:09:20

标签: django django-staticfiles

this 7 year old one相同的问题,但是解决方案无济于事,而且我使用的是django 3,因此我认为显然不是重复的。

我完全遵循Django documentation关于静态文件的信息。

设置文件:

STATIC_URL = '/static/'
DEBUG = True

文件夹结构:

---my_project
------my_project
------app1
------static
---------css
------------mystyle.css

模板:

  {% load static %}
  <link rel="stylesheet" href="{% static "css/mystle.css" %}">

浏览该网站时,我得到404 Not Found。链接指向正确的目录:

http://127.0.0.1:8000/static/css/mystyle.css

通过进一步搜索并查看文档(我认为尚不清楚),我还找到了STATIC_ROOT设置并进行了相应设置,但这也无济于事。

#BASE_DIR = path to project dir
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

试图解决这个问题数小时,然后在您点击“发送”后找到解决方案。对我而言,django文档尚不清楚且令人困惑,因此我添加的是答案而不是删除我的问题。

您的项目中可能还会有与之无关的静态资产 特定的应用程序。除了在您的内部使用static /目录 应用,您可以在您的目录中定义目录列表(STATICFILES_DIRS) 设置文件,Django也将在其中查找静态文件。

强调“可以”和“也”。这意味着不需要此设置,并且STATIC_URL就足够了。但事实并非如此。这是aboslutley必需的,否则您会得到404。

这将导致以下设置:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]
DEBUG = True

使其正常工作。