I'm confused about static files and media files in django. I've seen elsewhere that people use it interchangeably.
When should I use media_root
and when should I use static_root
?
If I have site images should I put it in static? And if I have product images do I put it in media?
STATIC_ROOT is the single root directory from where the Django application will serve the static files in production. The command manage.py collectstatic will automatically compile all the static files throughout the project and dump it into a single root directory, which is declared in STATIC_ROOT .
Static Files such as Images, CSS or JS files are often loaded via a different app in production websites to avoid loading multiple stuff from the same server.
First off, you'll typically find these three types of files in a Django project: Source code: These are your core Python modules and HTML files that make up every Django project, where you define your models, views, and templates. Static files: These are your CSS stylesheets, JavaScript files, fonts, and images.
MEDIA_ROOT
is the directory where file uploads are placed, as well as where generated files are usually stored. For example, one of my Django apps allows users to upload images. In one of the model classes, I use the ImageField
type from sorl-thumbnail with upload_to='%Y-%m'
. Whenever a user uploads an image, the file is stored in MEDIA_ROOT/%Y-%m/
(with %Y
replaced with the current year and %m
replaced with the current month number). Also, when sorl-thumbnail generates a thumbnail for an uploaded image, it places the thumbnail by default somewhere in MEDIA_ROOT/cache/
.
STATIC_ROOT
is used to configure the directory where static assets are placed. For example, site stylesheets, JavaScript files, and images used in the design of web pages are the types of files that go into STATIC_ROOT
. If you have multiple installed apps, each app that uses static files can have its own static files directory. You use the collectstatic
management function (invoked via python manage.py collectstatic
) to copy all of the apps' static files into STATIC_ROOT
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With