{"id":15724,"date":"2025-11-18T15:32:59","date_gmt":"2025-11-18T15:32:59","guid":{"rendered":"https:\/\/kb.cloudhostgeek.com\/docs\/framework\/python\/can-i-use-virtual-environments-with-django-hosting\/"},"modified":"2026-02-09T22:49:12","modified_gmt":"2026-02-09T22:49:12","slug":"how-do-i-manage-static-and-media-files-in-django-hosting-2","status":"publish","type":"docs","link":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/","title":{"rendered":"How Do I Manage Static and Media Files in Django Hosting?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"15724\" class=\"elementor elementor-15724\" data-elementor-post-type=\"docs\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ae070aa e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"1ae070aa\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29b0fc09 elementor-widget elementor-widget-text-editor\" data-id=\"29b0fc09\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Introduction<\/strong><\/h2>\n<p>When hosting a Django application on shared <strong><a style=\"text-decoration: none;\" href=\"https:\/\/www.bigcloudy.com\/django-hosting\">Django hosting<\/a><\/strong>, properly managing static and media files is essential. Static files include CSS, JavaScript, and images used by your app, while media files are user-uploaded files like profile pictures or documents.<\/p>\n<p>In a shared hosting environment powered by CloudLinux Passenger, you can handle both without needing root access just using cPanel, your terminal, and a few Django settings.<\/p>\n<p>By the end of this guide, you\u2019ll know how to configure your static and media directories, run collectstatic, and ensure your files load correctly from your domain.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-112961fa e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"112961fa\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-228e57b elementor-widget elementor-widget-text-editor\" data-id=\"228e57b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Understanding Static and Media Files in Django<\/b><\/h2>\n<h3><b>Static Files<\/b><\/h3>\n<p>These are the files used to style and enhance your website, such as:<\/p>\n<ul class=\"wp-block-list\">\n<li>CSS and JavaScript files<\/li>\n<li>Fonts<\/li>\n<li>Site images (e.g., logos, icons)<\/li>\n<\/ul>\n<p>Django uses the STATIC_URL and STATIC_ROOT settings to define where these files are stored and how they\u2019re accessed.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a0491ad e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"a0491ad\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4da18dc elementor-widget elementor-widget-text-editor\" data-id=\"4da18dc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><b>Media Files <\/b><\/h3>\n<p>Media files are uploaded by users and stored separately.<br \/>These include:<\/p>\n<ul class=\"wp-block-list\">\n<li>Uploaded images (avatars, product photos)<\/li>\n<li>Documents or attachments<\/li>\n<\/ul>\n<p>They\u2019re configured through MEDIA_URL and MEDIA_ROOT.<\/p>\n<p>\u00a0<strong>Note:<\/strong>\u00a0Always separate static and media files to avoid overwriting or exposure of sensitive content.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-42e53a86 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"42e53a86\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dae903e elementor-widget elementor-widget-text-editor\" data-id=\"dae903e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Default Django Settings for Static and Media Files <\/b><\/h2>\n<p>In your Django project\u2019s settings.py, add or update the following:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6bb63a0 elementor-widget elementor-widget-code-highlight\" data-id=\"6bb63a0\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>import os \nSTATIC_URL = '\/static\/' \nSTATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') \nMEDIA_URL = '\/media\/' \nMEDIA_ROOT = os.path.join(BASE_DIR, 'media')<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-86dc7bd elementor-widget elementor-widget-text-editor\" data-id=\"86dc7bd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Note:<\/strong><\/p>\n<p>\u00a0Never place your media directory inside your static directory. Passenger will serve static files automatically if correctly configured in cPanel.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-60eaed47 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"60eaed47\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-427a3b83 elementor-widget elementor-widget-text-editor\" data-id=\"427a3b83\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Step-by-Step: Configure Static and Media Files in cPanel <\/b><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-177f246 elementor-widget elementor-widget-text-editor\" data-id=\"177f246\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol class=\"wp-block-list\">\n<li>\n<h3><strong>Log in to your cPanel account.<br \/><\/strong><\/h3>\nNavigate to your domain\u2019s cPanel dashboard.<\/li>\n<\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f7b7e26 elementor-widget elementor-widget-image\" data-id=\"f7b7e26\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"395\" height=\"384\" src=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy.webp\" class=\"attachment-large size-large wp-image-16228\" alt=\"cPanel login page\" srcset=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy.webp 395w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-300x292.webp 300w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-20x20.webp 20w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-32x32.webp 32w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-16x16.webp 16w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-40x40.webp 40w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-50x50.webp 50w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-370x360.webp 370w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy-18x18.webp 18w\" sizes=\"(max-width: 395px) 100vw, 395px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73668e9 elementor-widget elementor-widget-text-editor\" data-id=\"73668e9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>2.\u00a0<strong>Locate your Django app directory.<br \/><br \/><\/strong>Go to the folder where your Django project resides <strong>(e.g., \/home\/username\/projectname\/).<\/strong><\/p>\n<p>3.\u00a0<strong>Create static and media folders.<br \/><\/strong>Inside your project directory, create two folders:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>\/staticfiles\/<\/strong><\/li>\n<li><strong>\/media\/<\/strong><\/li>\n<li><strong>Update Passenger settings.<\/strong><strong><br \/><\/strong>In your cPanel\u00a0<strong>Setup Python App<\/strong>\u00a0section, confirm your application root points to your Django project folder and that the passenger_wsgi.py file exists.<\/li>\n<\/ul>\n<ol>\n<li style=\"list-style-type: none;\">\u00a0<\/li>\n<\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aeabc15 elementor-widget elementor-widget-image\" data-id=\"aeabc15\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/update-passenger-bigcloudy-1024x642.webp\" class=\"attachment-large size-large wp-image-16229\" alt=\"\" srcset=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/update-passenger-bigcloudy-1024x642.webp 1024w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/update-passenger-bigcloudy-300x188.webp 300w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/update-passenger-bigcloudy-768x481.webp 768w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/update-passenger-bigcloudy-20x13.webp 20w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/update-passenger-bigcloudy-32x20.webp 32w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/update-passenger-bigcloudy.webp 1329w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d2599e elementor-widget elementor-widget-text-editor\" data-id=\"8d2599e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>5.<strong>Save and restart the app.<\/strong><strong><br \/><\/strong>Click\u00a0<strong>Restart App<\/strong>\u00a0to reload the Passenger environment.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c3e2982 elementor-widget elementor-widget-image\" data-id=\"c3e2982\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"212\" src=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/bigcloudy-static-collection-1024x212.webp\" class=\"attachment-large size-large wp-image-16230\" alt=\"\" srcset=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/bigcloudy-static-collection-1024x212.webp 1024w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/bigcloudy-static-collection-300x62.webp 300w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/bigcloudy-static-collection-768x159.webp 768w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/bigcloudy-static-collection-20x4.webp 20w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/bigcloudy-static-collection-32x7.webp 32w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/bigcloudy-static-collection.webp 1365w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-802634f elementor-widget elementor-widget-text-editor\" data-id=\"802634f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>3.\u00a0This gathers all static files into your <strong>STATIC_ROOT<\/strong> folder.<\/p>\n<p>4.\u00a0<strong>Verify file creation.<br \/><\/strong>Use File Manager to confirm that your static files are stored under <strong>\/staticfiles\/.<\/strong><\/p>\n<p><strong>Note:<\/strong>\u00a0Run collectstatic after every change in your CSS or JS files to ensure updates are visible.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-444971db e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"444971db\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e740482 elementor-widget elementor-widget-text-editor\" data-id=\"e740482\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Serving Static Files with CloudLinux Passenger <\/b><\/h2>\n<p>Passenger automatically serves static content if it\u2019s in your app directory.<\/p>\n<p>To confirm this:<\/p>\n<ol class=\"wp-block-list\">\n<li>Check your .htaccess file under the project root.<\/li>\n<li>Add the following rule if missing:<\/li>\n<\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-604e544 elementor-widget elementor-widget-code-highlight\" data-id=\"604e544\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>PassengerEnabled on\n\nAlias \/static \/home\/username\/projectname\/staticfiles\n\nAlias \/media \/home\/username\/projectname\/media<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-455386f elementor-widget elementor-widget-text-editor\" data-id=\"455386f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol class=\"wp-block-list\" start=\"3\">\n<li>Save changes and restart the app in cPanel.<\/li>\n<\/ol>\n<p><strong>Note:<\/strong>\u00a0Some shared servers restrict manual .htaccess edits. If static files still don\u2019t load, contact support to verify that Passenger is configured to serve them.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6235135a e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"6235135a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-145b5cd9 elementor-widget elementor-widget-text-editor\" data-id=\"145b5cd9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Managing Media Uploads via cPanel File Manager<\/b><\/h2>\n<p>You can manage user-uploaded files without SSH access.<\/p>\n<ol class=\"wp-block-list\">\n<li>Go to\u00a0<strong>Files \u2192 File Manager<\/strong>.<\/li>\n<li>Navigate to your app\u2019s \/media\/ folder.<\/li>\n<li>Upload files directly or view user uploads.<\/li>\n<li>Ensure\u00a0<strong>correct permissions (755)<\/strong>\u00a0for directories and\u00a0<strong>644<\/strong>\u00a0for files.<\/li>\n<\/ol>\n<p><strong>Note:<\/strong>\u00a0To prevent unauthorized access, avoid storing private user data in publicly accessible folders.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-26068773 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"26068773\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76d6356d elementor-widget elementor-widget-text-editor\" data-id=\"76d6356d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><b>Common Issues and Fixes <\/b><\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c37a22a elementor-widget elementor-widget-text-editor\" data-id=\"1c37a22a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<figure class=\"wp-block-table\">\n<table class=\"has-fixed-layout\">\n<tbody>\n<tr>\n<td><strong>Issue<\/strong><\/td>\n<td><strong>Cause<\/strong><\/td>\n<td><strong>Solution<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Static files not loading<\/td>\n<td>collectstatic not run or wrong path<\/td>\n<td>Check STATIC_ROOT path and rerun collectstatic.<\/td>\n<\/tr>\n<tr>\n<td>Media files inaccessible<\/td>\n<td>Permissions too strict<\/td>\n<td>Set proper read permissions (755\/644).<\/td>\n<\/tr>\n<tr>\n<td>404 error for static URLs<\/td>\n<td>Alias missing in .htaccess<\/td>\n<td>Add Passenger alias rules.<\/td>\n<\/tr>\n<tr>\n<td>Changes not reflecting<\/td>\n<td>Browser cache or old files<\/td>\n<td>Clear cache and restart app.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1274dec3 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"1274dec3\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-db19ad7 elementor-widget elementor-widget-text-editor\" data-id=\"db19ad7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Conclusion<\/b><\/h2>\n<p data-start=\"16\" data-end=\"328\">Managing static and media files in Django on shared hosting follows a clear and predictable process. By defining proper paths in <code data-start=\"145\" data-end=\"158\">settings.py<\/code>, keeping static and media directories separate, and running <code data-start=\"219\" data-end=\"234\">collectstatic<\/code> after changes, files can be served reliably through CloudLinux Passenger without root access.<\/p>\n<p data-start=\"330\" data-end=\"635\" data-is-last-node=\"\" data-is-only-node=\"\">cPanel tools and optional SSH access provide enough control to upload files, verify permissions, and restart applications when needed. As long as directory paths, permissions, and Passenger settings are correct, static assets and user-uploaded media will load consistently in a shared hosting environment.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c96bfcd elementor-widget elementor-widget-text-editor\" data-id=\"c96bfcd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Need Help?<br \/><\/b><\/h2>\n<p>If you require assistance at any point while using this guide, our\u00a0<b>Support Team<\/b>\u00a0is here to help:<\/p>\n<ul>\n<li aria-level=\"1\"><img decoding=\"async\" class=\"emoji\" role=\"img\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg\" alt=\"email\" \/>\u00a0<b>Email:<\/b>\u00a0support@bigcloudy.com<\/li>\n<li aria-level=\"1\"><img decoding=\"async\" class=\"emoji\" role=\"img\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f310.svg\" alt=\"website\" \/><a style=\"text-decoration: none; color: #a57ef5;\" href=\"https:\/\/www.bigcloudy.com\/contact-us\">\u00a0<b>Submit a support ticket<\/b><\/a><\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5514beab e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"5514beab\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-172ba6ee elementor-widget elementor-widget-text-editor\" data-id=\"172ba6ee\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>FAQ<\/b><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2337539 elementor-widget elementor-widget-eael-adv-accordion\" data-id=\"2337539\" data-element_type=\"widget\" data-widget_type=\"eael-adv-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"eael-adv-accordion\" id=\"eael-adv-accordion-2337539\" data-scroll-on-click=\"no\" data-scroll-speed=\"300\" data-accordion-id=\"2337539\" data-accordion-type=\"accordion\" data-toogle-speed=\"300\">\n    <div class=\"eael-accordion-list\">\n                <div id=\"do-i-need-ssh-to-manage-static-files\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"1\" aria-controls=\"elementor-tab-content-3691\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Do I need SSH to manage static files?<\/span><\/div><div id=\"elementor-tab-content-3691\" class=\"eael-accordion-content clearfix\" data-tab=\"1\" aria-labelledby=\"do-i-need-ssh-to-manage-static-files\"><p>No. You can use cPanel File Manager to upload or replace static and media files, though SSH access makes collectstatic faster.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"why-are-my-static-files-not-updating\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"2\" aria-controls=\"elementor-tab-content-3692\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Why are my static files not updating?<\/span><\/div><div id=\"elementor-tab-content-3692\" class=\"eael-accordion-content clearfix\" data-tab=\"2\" aria-labelledby=\"why-are-my-static-files-not-updating\"><p>Run:<br \/><strong><em># python manage.py<\/em><\/strong> collectstatic again after making changes, then restart your app.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"where-are-my-uploaded-media-files-stored\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"3\" aria-controls=\"elementor-tab-content-3693\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Where are my uploaded media files stored?<\/span><\/div><div id=\"elementor-tab-content-3693\" class=\"eael-accordion-content clearfix\" data-tab=\"3\" aria-labelledby=\"where-are-my-uploaded-media-files-stored\"><p>They\u2019re stored in your project\u2019s \/media\/ directory as defined in MEDIA_ROOT.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"can-i-use-a-cdn-for-django-static-files\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"4\" aria-controls=\"elementor-tab-content-3694\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Can I use a CDN for Django static files?<\/span><\/div><div id=\"elementor-tab-content-3694\" class=\"eael-accordion-content clearfix\" data-tab=\"4\" aria-labelledby=\"can-i-use-a-cdn-for-django-static-files\"><p>Yes. Configure STATIC_URL to point to your CDN endpoint once files are synced.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"how-can-i-check-which-static-directory-django-is-using\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"5\" aria-controls=\"elementor-tab-content-3695\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">How can I check which static directory Django is using?<\/span><\/div><div id=\"elementor-tab-content-3695\" class=\"eael-accordion-content clearfix\" data-tab=\"5\" aria-labelledby=\"how-can-i-check-which-static-directory-django-is-using\"><p>Run:<br \/><strong><em># python manage.py findstatic &lt;filename&gt;<\/em><\/strong><\/p><\/div>\n                <\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Introduction When hosting a Django application on shared Django hosting, properly managing static and media files is essential. Static files include CSS, JavaScript, and images used by your app, while media files are user-uploaded files like profile pictures or documents. In a shared hosting environment powered by CloudLinux Passenger, you can handle both without needing root access just using cPanel, your terminal, and a few Django settings. By the end of this guide, you\u2019ll know how to configure your static and media directories, run collectstatic, and ensure your files load correctly from your domain. Understanding Static and Media Files in Django Static Files These are the files used to style and enhance your website, such as: CSS and JavaScript files Fonts Site images (e.g., logos, icons) Django uses the STATIC_URL and STATIC_ROOT settings to define where these files are stored and how they\u2019re accessed. Media Files Media files are uploaded by users and stored separately.These include: Uploaded images (avatars, product photos) Documents or attachments They\u2019re configured through MEDIA_URL and MEDIA_ROOT. \u00a0Note:\u00a0Always separate static and media files to avoid overwriting or exposure of sensitive content. Default Django Settings for Static and Media Files In your Django project\u2019s settings.py, add or update the following: import os STATIC_URL = &#8216;\/static\/&#8217; STATIC_ROOT = os.path.join(BASE_DIR, &#8216;staticfiles&#8217;) MEDIA_URL = &#8216;\/media\/&#8217; MEDIA_ROOT = os.path.join(BASE_DIR, &#8216;media&#8217;) Note: \u00a0Never place your media directory inside your static directory. Passenger will serve static files automatically if correctly configured in cPanel. Step-by-Step: Configure Static and Media Files in cPanel Log in to your cPanel account. Navigate to your domain\u2019s cPanel dashboard. 2.\u00a0Locate your Django app directory. Go to the folder where your Django project resides (e.g., \/home\/username\/projectname\/). 3.\u00a0Create static and media folders.Inside your project directory, create two folders: \/staticfiles\/ \/media\/ Update Passenger settings.In your cPanel\u00a0Setup Python App\u00a0section, confirm your application root points to your Django project folder and that the passenger_wsgi.py file exists. \u00a0 5.Save and restart the app.Click\u00a0Restart App\u00a0to reload the Passenger environment. 3.\u00a0This gathers all static files into your STATIC_ROOT folder. 4.\u00a0Verify file creation.Use File Manager to confirm that your static files are stored under \/staticfiles\/. Note:\u00a0Run collectstatic after every change in your CSS or JS files to ensure updates are visible. Serving Static Files with CloudLinux Passenger Passenger automatically serves static content if it\u2019s in your app directory. To confirm this: Check your .htaccess file under the project root. Add the following rule if missing: PassengerEnabled on Alias \/static \/home\/username\/projectname\/staticfiles Alias \/media \/home\/username\/projectname\/media Save changes and restart the app in cPanel. Note:\u00a0Some shared servers restrict manual .htaccess edits. If static files still don\u2019t load, contact support to verify that Passenger is configured to serve them. Managing Media Uploads via cPanel File Manager You can manage user-uploaded files without SSH access. Go to\u00a0Files \u2192 File Manager. Navigate to your app\u2019s \/media\/ folder. Upload files directly or view user uploads. Ensure\u00a0correct permissions (755)\u00a0for directories and\u00a0644\u00a0for files. Note:\u00a0To prevent unauthorized access, avoid storing private user data in publicly accessible folders. Common Issues and Fixes Issue Cause Solution Static files not loading collectstatic not run or wrong path Check STATIC_ROOT path and rerun collectstatic. Media files inaccessible Permissions too strict Set proper read permissions (755\/644). 404 error for static URLs Alias missing in .htaccess Add Passenger alias rules. Changes not reflecting Browser cache or old files Clear cache and restart app. Conclusion Managing static and media files in Django on shared hosting follows a clear and predictable process. By defining proper paths in settings.py, keeping static and media directories separate, and running collectstatic after changes, files can be served reliably through CloudLinux Passenger without root access. cPanel tools and optional SSH access provide enough control to upload files, verify permissions, and restart applications when needed. As long as directory paths, permissions, and Passenger settings are correct, static assets and user-uploaded media will load consistently in a shared hosting environment. Need Help? If you require assistance at any point while using this guide, our\u00a0Support Team\u00a0is here to help: \u00a0Email:\u00a0support@bigcloudy.com \u00a0Submit a support ticket FAQ Do I need SSH to manage static files? No. You can use cPanel File Manager to upload or replace static and media files, though SSH access makes collectstatic faster. Why are my static files not updating? Run:# python manage.py collectstatic again after making changes, then restart your app. Where are my uploaded media files stored? They\u2019re stored in your project\u2019s \/media\/ directory as defined in MEDIA_ROOT. Can I use a CDN for Django static files? Yes. Configure STATIC_URL to point to your CDN endpoint once files are synced. How can I check which static directory Django is using? Run:# python manage.py findstatic &lt;filename&gt;<\/p>\n","protected":false},"author":13,"featured_media":0,"parent":15569,"menu_order":9,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-15724","docs","type-docs","status-publish","hentry","no-post-thumbnail"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.7 (Yoast SEO v26.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Manage Static and Media Files in Django Hosting<\/title>\n<meta name=\"description\" content=\"Learn how to manage static and media files in Django hosting using cPanel and Passenger. Configure settings, run collectstatic, and fix issues.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Do I Manage Static and Media Files in Django Hosting?\" \/>\n<meta property=\"og:description\" content=\"Learn how to manage static and media files in Django hosting using cPanel and Passenger. Configure settings, run collectstatic, and fix issues.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudHostGeek Help Center\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BigCloudyHosting\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-09T22:49:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@bigcloudypvtltd\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Manage Static and Media Files in Django Hosting","description":"Learn how to manage static and media files in Django hosting using cPanel and Passenger. Configure settings, run collectstatic, and fix issues.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/","og_locale":"en_US","og_type":"article","og_title":"How Do I Manage Static and Media Files in Django Hosting?","og_description":"Learn how to manage static and media files in Django hosting using cPanel and Passenger. Configure settings, run collectstatic, and fix issues.","og_url":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/","og_site_name":"CloudHostGeek Help Center","article_publisher":"https:\/\/www.facebook.com\/BigCloudyHosting\/","article_modified_time":"2026-02-09T22:49:12+00:00","og_image":[{"url":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@bigcloudypvtltd","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/","name":"Manage Static and Media Files in Django Hosting","isPartOf":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/#primaryimage"},"image":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/#primaryimage"},"thumbnailUrl":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy.webp","datePublished":"2025-11-18T15:32:59+00:00","dateModified":"2026-02-09T22:49:12+00:00","description":"Learn how to manage static and media files in Django hosting using cPanel and Passenger. Configure settings, run collectstatic, and fix issues.","breadcrumb":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/#primaryimage","url":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy.webp","contentUrl":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/cPanel-Bigcloudy.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-manage-static-and-media-files-in-django-hosting-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/"},{"@type":"ListItem","position":2,"name":"Framework","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/"},{"@type":"ListItem","position":3,"name":"Python","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/"},{"@type":"ListItem","position":4,"name":"How Do I Manage Static and Media Files in Django Hosting?"}]},{"@type":"WebSite","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#website","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/","name":"https:\/\/www.bigcloudy.com\/","description":"Your step-by-step guide to hosting, servers &amp; website tools.","publisher":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bigcloudy.com\/knowledge-base\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#organization","name":"BigCloudy internt services pvt ltd.","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#\/schema\/logo\/image\/","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2024\/09\/cropped-BGC_logo.webp","contentUrl":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2024\/09\/cropped-BGC_logo.webp","width":368,"height":114,"caption":"BigCloudy internt services pvt ltd."},"image":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BigCloudyHosting\/","https:\/\/x.com\/bigcloudypvtltd","https:\/\/www.instagram.com\/bigcloudypvtltd\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/15724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/comments?post=15724"}],"version-history":[{"count":0,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/15724\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/15569"}],"wp:attachment":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/media?parent=15724"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/doc_tag?post=15724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}