14

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.

1
  • Something is not off with your project's structure, why do you have myproject 3 times in the hierarchy? It seems that the tutorial you've mentioned is not giving out good advice related to the naming of your Django project and apps. Commented Feb 8, 2018 at 12:31

4 Answers 4

11

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' %}">
Sign up to request clarification or add additional context in comments.

2 Comments

I believe that you misspelled the STATICFILES_DIRS setting (you're missing an 'S').
This was the problem. I feel so stupid lol. It's all working now!
2

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.

1 Comment

No worries, I'm glad that it worked - if I edit my answer, will you accept that instead?
1

on the setting.py file try using this syntax:

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

Comments

0

Do you need the "STATICFILES_DIR" variable in your case? It points to the same place so it's redundant until you run it on something like nginx or Apache I would think, to have them server the static files.

Is django.contrib.staticfiles in you "INSTALLED_APPS" variable in your settings file?

1 Comment

I'm just following the tutorial is all. I also do have the django.contrib.staticfiles included in the INSTALLED_APPS namespace.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.