与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')
我在做什么错了?
答案 0 :(得分:0)
试图解决这个问题数小时,然后在您点击“发送”后找到解决方案。对我而言,django文档尚不清楚且令人困惑,因此我添加的是答案而不是删除我的问题。
您的项目中可能还会有与之无关的静态资产 特定的应用程序。除了在您的内部使用static /目录 应用,您可以在您的目录中定义目录列表(STATICFILES_DIRS) 设置文件,Django也将在其中查找静态文件。
强调“可以”和“也”。这意味着不需要此设置,并且STATIC_URL就足够了。但事实并非如此。这是aboslutley必需的,否则您会得到404。
这将导致以下设置:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
DEBUG = True
使其正常工作。