【问题标题】:django Cannot find static/css files error 404django 找不到静态/css 文件错误 404
【发布时间】:2018-02-08 10:16:40
【问题描述】:

这个问题似乎广为人知,但是,大多数是旧的问答,并没有解决我的问题。

我正在使用 Django 2.0.2,当我的简单网页无法呈现我的 bootstrap.css 文件时,因为它根本找不到它。

我正在关注本教程:https://simpleisbetterthancomplex.com/series/2017/09/11/a-complete-beginners-guide-to-django-part-2.html#static-files-setup

这是我的文件结构:

myproject/
 |-- myproject/
 |    |-- boards/
 |    |-- myproject/
 |    |-- templates/
 |    |-- static/
 |    |    +-- css/
 |    |         +-- bootstrap.min.css    <-- here
 |    +-- manage.py

这是我在settings.py 文件中定义的静态变量。

STATIC_URL = '/static/'

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

这是我的home.html 文件,为简洁起见,下半部分被剪掉了。

{% load static %}<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Boards</title>
    <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
  </head>
  <body>
    <h1>Boards</h1>

我已将调试设置为 true,当我运行服务器并加载它时,我会看到以下内容:[08/Feb/2018 19:26:02] "GET /static/css/bootstrap.css HTTP/1.1" 404 1675

我也无法访问此 URL,因为它也显示 404 错误:http://127.0.0.1:8000/static/css/bootstrap.min.css

当我在上述文件中明确说明时,我不确定为什么 Django 找不到 .css 文件。也没有其他 StackOverflow 问题/答案对我有帮助。

接受建议;非常感谢任何帮助。

【问题讨论】:

  • 你的项目结构有问题,为什么你的层次结构中有myproject 3次?您提到的教程似乎没有给出与您的 Django 项目和应用程序命名相关的好建议。

标签: python css django static


【解决方案1】:

编辑:似乎 OP 拼错了 STATICFILES_DIRS 设置,缺少一个“S”。

在您的 Django 应用程序目录中创建一个子目录 static,然后在该目录中创建另一个与您的 Django 应用程序名称相同的子目录。然后将您的css 目录移动到最新提到的目录中。

所以,是这样的:

- your_django_app
-- static
--- your_django_app
---- css
----- bootstrap.min.css

然后你就可以像这样在你的模板中使用:

<link rel="stylesheet" href="{% static 'your_django_app/css/bootstrap.min.css' %}">

【讨论】:

  • 我认为您拼错了 STATICFILES_DIRS 设置(您缺少一个“S”)。
  • 这就是问题所在。我觉得好傻哈哈。现在一切正常!
  • 谢谢一帮朋友
【解决方案2】:

根据@bonidjkic 的评论:I believe that you misspelled the STATICFILES_DIRS setting (you're missing an 'S'),这就是问题所在。

非常感谢你,我觉得我怎么会错过这个太愚蠢了。

【讨论】:

  • 不用担心,我很高兴它成功了 - 如果我编辑我的答案,你会接受吗?
【解决方案3】:

在 setting.py 文件中尝试使用以下语法:

STATICFILES_DIRS = [ os.path.join (BASE_DIR, "static"), '/var/www/static/', ]

【讨论】:

    【解决方案4】:

    您是否需要“STATICFILES_DIR”变量?它指向同一个地方,所以它是多余的,直到你在我认为的 nginx 或 Apache 上运行它,让它们为静态文件提供服务器。

    您的设置文件中的“INSTALLED_APPS”变量中是否包含 django.contrib.staticfiles?

    【讨论】:

    • 我只是按照教程进行操作。我也确实在 INSTALLED_APPS 命名空间中包含了 django.contrib.staticfiles。
    猜你喜欢
    • 1970-01-01
    • 2019-01-12
    • 2021-11-25
    • 2020-12-30
    • 1970-01-01
    • 2016-04-08
    • 2018-05-24
    • 2017-09-02
    相关资源
    最近更新 更多