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