Search code examples
djangoiisdjango-staticfiles

How to show Django static file on windows 10 IIS


I'm trying to deploy Django app on windows 10 iis my app is working fine but Django static file not serve.

Here my setting which is I'm configure on windows 10 IIS Server

Web config

  <appSettings>
        <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
        <add key="PYTHONPATH" value="E:\django\crm\crm\crm" />
        <add key="DJANGO_SETTINGS_MODULE" value="crm.settings" />
    </appSettings>

    <system.webServer>
        <handlers>
            <remove name="crm" />
            <add name="crm" path="*" verb="*" modules="FastCgiModule" scriptProcessor="E:\django\crm\crm\crm\env\Scripts\python.exe|E:\django\crm\crm\crm\env\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
    </system.webServer>
</configuration>

Add Website enter image description here

FASTCGI Setting enter image description here

Handler Mapping enter image description here

Setting Py

from pathlib import Path
import os
BASE_DIR = Path(__file__).resolve().parent.parent
DEBUG = False
ALLOWED_HOSTS = ['192.168.11.59','127.0.0.1']

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'base.apps.BaseConfig',

    'dbbackup',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'crm.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR ,'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'crm.wsgi.application'
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_TZ = True

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'staticfiles')
STATICFILES_DIRS = [BASE_DIR /'static']

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

I don't know why it's not working. I have proper set the static_url and static_root and url.py guide me how to fix it.


Solution

  • You can try this method:

    • Go to your IIS server -> right click the website -> Add virtual directory
    • In Alias wrote static, then navigate to the folder in the project where all the static files are.

    enter image description here