我刚刚开始一个新项目,目前Django无法找到静态文件。我正在使用Django == 2.2.6
静态文件位于名为“网站”的应用程序中。这是文件结构。
https://i.imgur.com/AnPACop.png
这是来自设置的:
STATIC_URL = '/static/'
这就是我包含静态文件的方式:
{% static 'css/style.css' %}
静态文件的URL似乎正确:
<link href="/static/css/style.css" rel="stylesheet">
编辑:其不正确。但这有效:
<link href="/static/core/css/style.css" rel="stylesheet">
答案 0 :(得分:1)
这是浏览器将找到您的静态文件的URL。它不会让Django知道在项目根目录(`BASE_DIR)内的哪个文件夹中找到它们
STATIC_URL = '/static/'
尝试使用它代替指定要存储静态变量的目录
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'website/static'),)
另外,请确保使用以下模板标记将静态信息加载到模板中
{% load static %}
html
上CSS的路径也不正确,您应该将其更改为:
<link href="/static/core/css/style.css" rel="stylesheet">
答案 1 :(得分:0)
使文件结构类似
ProjectFolderName
static
-css
-js ..
template
website
projectfoldername
migration...
最好将“静态”文件夹放置在“项目”文件夹中。 然后使用-
在projectfoldername中更改您的settings.pySTATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
然后运行此命令
python manage.py collectstatic
您的静态文件将被复制到django创建的新文件中作为资产。 并添加到您的HTML
{{% load static %}}
答案 2 :(得分:0)
已解决。问题是文件结构。由于某种原因,静态文件位于核心文件夹中。 https://i.imgur.com/AnPACop.png
当我将文件直接放入“静态”文件时,它开始工作。
答案 3 :(得分:0)
我的英语不是很完美,请提前对不起。
我在Django 3中,我遇到了同样的问题。在所有人的帮助下,这就是我发现问题所在的方式。只是把这篇帖子当作给我的笔记。
我愿意:
python3 manage.py runserver
此刻,我读取了输出的最后一行。它正在查找不存在的文件。我复制了路径。进入终端,然后:
cd path/copied/before/static/base.css
找不到文件。这时我知道该怎么办。只需按照路径创建我需要的文件夹即可。
我知道这不是一个好习惯,但是可以帮助初学者。