Django无法找到静态文件

时间:2019-10-06 08:14:57

标签: django

我刚刚开始一个新项目,目前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">

4 个答案:

答案 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.py
STATIC_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

找不到文件。这时我知道该怎么办。只需按照路径创建我需要的文件夹即可。

我知道这不是一个好习惯,但是可以帮助初学者。