Django - Collect Static Files

Static files in your project, like stylesheets, JavaScripts, and images, are not handled automatically by Django when DEBUG = False.

When DEBUG = True, this worked fine, all we had to do was to put them in the static folder of the application.

When DEBUG = False, static files have to be collected and put in a specified folder before we can use it.

Collect Static Files

To collect all necessary static files for your project, start by specifying a STATIC_ROOT property in the settings.py file.

This specifies a folder where you want to collect your static files.

You can call the folder whatever you like, we will call it productionfiles:


STATIC_URL = 'static/'

STATIC_ROOT = BASE_DIR / 'productionfiles'


You could manually create this folder and collect and put all static files of your project into this folder, but Django has a command that do this for you:


python3 manage.py collectstatic 


Which will produce this result:


131 static files copied to 'C:\Users\your_name\myworld\my_tennis_club\productionfiles'. 


131 files? Why so many? Well this is because of the admin user interface, that comes built-in with Django. We want to keep this feature in production, and it comes with a whole bunch of files including stylesheets, fonts, images, and JavaScripts.

Start the server and see the result:


python3 manage.py runserver


Latest Blog