django找不到静态/ css文件错误404

时间:2018-02-08 10:16:41

标签: python css django static

这个问题似乎是众所周知的,然而,大多数是陈旧的Q& A并且他们没有解决我的问题。

我正在使用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

我也无法访问此网址,因为它也说明了404错误:http://127.0.0.1:8000/static/css/bootstrap.min.css

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

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

4 个答案:

答案 0 :(得分:4)

编辑:OP似乎错误地设置了STATICFILES_DIRS设置,错过了&#39; S&#39;

在您的Django app目录中创建一个子目录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' %}">

答案 1 :(得分:0)

你需要&#34; STATICFILES_DIR&#34;在你的情况下变量?它指向同一个地方,所以它是多余的,直到你在像我认为的nginx或Apache这样的东西上运行它,让它们服务于静态文件。

你身上是django.contrib.staticfiles&#34; INSTALLED_APPS&#34;您的设置文件中的变量?

答案 2 :(得分:0)

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

非常感谢你,我对如何错过这一点感到非常愚蠢。

答案 3 :(得分:0)

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

STATICFILES_DIRS = [ os.path.join(BASE_DIR,“静态”), '/ Var / www / static /', ]