Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django Cannot find static/css files error 404

This problem seems to be widely known, however, most are old Q&A's and they do not solve my problem.

I am using Django 2.0.2 and when my simple web page is not rendering my bootstrap.css file because it simply cannot find it.

I am following this tutorial: https://simpleisbetterthancomplex.com/series/2017/09/11/a-complete-beginners-guide-to-django-part-2.html#static-files-setup

This is my file structure:

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

This is my static variables defined in the settings.py file.

STATIC_URL = '/static/'

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

This is my home.html file as is with the bottom half cut out for brevity.

{% 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>

I have debugging set to true, and when I run my server and load it up, I am presented with the following: [08/Feb/2018 19:26:02] "GET /static/css/bootstrap.css HTTP/1.1" 404 1675

I am also not able to visit this URL as it states a 404 error too: http://127.0.0.1:8000/static/css/bootstrap.min.css.

I'm not sure as to why Django cannot find the .css file when I have it clearly stated in the above files. No other StackOverflow questions/answers have helped me either.

Open to suggestions; any help is much appreciated.

like image 563
juiceb0xk Avatar asked Feb 08 '18 10:02

juiceb0xk


Video Answer


3 Answers

EDIT: It seems that the OP mispelled the STATICFILES_DIRS setting, missing an 'S'.

Within your Django app directory create a subdirectory static and then within that directory, create another one named the same as the name of your Django app. Then move your css directory inside that latest mentioned directory.

So, something like this:

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

Then you'll be able to use in your templates like this:

<link rel="stylesheet" href="{% static 'your_django_app/css/bootstrap.min.css' %}">
like image 194
bonidjukic Avatar answered Oct 23 '22 12:10

bonidjukic


on the setting.py file try using this syntax:

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

like image 38
user13181720 Avatar answered Oct 23 '22 10:10

user13181720


As per @bonidjkic's comment: I believe that you misspelled the STATICFILES_DIRS setting (you're missing an 'S'), this was the problem.

Thank you ever so much, I feel so stupid as to how I had ever missed that.

like image 2
juiceb0xk Avatar answered Oct 23 '22 12:10

juiceb0xk