How to configure static and media file in django?

Md Sadiqul Islam
2 min readMar 1, 2023

In Django, static files are files that are served by the web server directly to the client, without any modification or processing by the server. These files include CSS, JavaScript, images, and other resources that are used to render the HTML pages.

On the other hand, media files are user-uploaded files, such as images or videos, that are stored on the server and served to the client when requested.

To configure static and media files in Django, you need to define their respective directories and URLs in your project’s settings.py file.

Static files configuration: To configure static files, you need to define the STATIC_ROOT and STATIC_URL settings in your settings.py file. The STATIC_ROOT setting specifies the directory where Django will collect all the static files in your project. The STATIC_URL setting specifies the URL prefix for all static files in your project.

For example:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

This code sets the STATIC_URL to '/static/' and the STATIC_ROOT to the 'static' directory in the base directory of your project.

Media files configuration: To configure media files, you need to define the MEDIA_ROOT and MEDIA_URL settings in your settings.py file. The MEDIA_ROOT setting specifies the directory where user-uploaded files will be stored. The MEDIA_URL setting specifies the URL prefix for all media files in your project.

For example:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

This code sets the MEDIA_URL to '/media/' and the MEDIA_ROOT to the 'media' directory in the base directory of your project.

After configuring these settings, you also need to add the URLs to your project’s urls.py file. This can be done using the static() and media() functions provided by Django.

For example:

from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
# ... other URL patterns here ...
]

# serve static files in development
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

# serve media files in development
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

This code adds the URLs for static and media files to your project’s URL patterns. The static() function serves static files in development mode, and the media() function serves media files in development mode.

In production mode, you will need to configure your web server to serve the static and media files directly.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response