IIS django static files not showinvg

Я пытаюсь развернуть свое приложение Django на IIS для работы, но оно не обслуживает мои статические файлы. Я посмотрел этот учебник: https://www.youtube.com/watch?v=APCQ15YqqQ0.

Сейчас мое приложение Django выглядит следующим образом, CSS не отображается enter image description here

Я добавил виртуальный каталог и установил физический путь к статическому файлу в проекте. enter image description here

В моем файле settings.py у меня есть

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

Я понятия не имею, чего мне не хватает. Пожалуйста, скажите мне, если вам нужна дополнительная информация.

Измените

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

to

STATICFILES_STORAGE = 'whitenoise.storage.CompressedStaticFilesStorage'

Это должно исправить внутреннюю ошибку 500 при запросе файлов.

Дополнительно, как упоминает @LexLi

wfastcgi устарел, поэтому это уже не тот способ размещения веб-приложений Python на IIS. Вы можете перейти на HttpPlatformHandler

.

Для размещения веб-приложения Django с помощью Httpplatformhandler вы можете обратиться к следующим шагам.

Для Django физический путь - это путь к файлу manage.py вашего приложения.

Скачайте и установите Httpplatformhandler на IIS с помощью Windows Platform Installer. Или скачайте по этой ссылке.

Django APP with Httpplatformhandler Добавьте web.config, где ваше Django приложение определено.

    <?xml version="1.0" encoding="UTF-8"?>
     <configuration>
         <system.webServer>
             <handlers>
                 <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"
 requireAccess="Script" />
             </handlers>
             <httpPlatform startupTimeLimit="10" startupRetryCount="10" stdoutLogEnabled="true"
 processPath="C:\Users\user\AppData\Local\Programs\Python\Python36\python.exe"
 arguments="manage.py runserver">
                 <environmentVariables>
                     <environmentVariable name="foo" value="bar"/>
                 </environmentVariables>
             </httpPlatform>
         </system.webServer>
     </configuration>

HttpPlaform обрабатывает процесс Python. ProcessPath это физический путь к исполняемому файлу python. Точно так же, как вы указываете python путь в переменной окружения windows. Чтобы получить доступ к исполняемому файлу python исполняемому файлу. Здесь вы должны указать python.exe в processPath.

.

Аргументы - это те же аргументы, которые вы передаете при запуске любого веб-приложения python. приложение. Например, python manage.py runserver, где app.py - порт. номер - все это аргументы. В приведенном выше приложении, manage.py runserver передается для запуска приложения Django.

.

Добавьте разрешение на приложение Django и папку Python, в которой находится ваш где находится ваш исполняемый файл.

  1. Откройте свойства папки.

  2. В разделе Безопасность нажмите на Изменить, затем нажмите на Добавить

    .
  3. Введите имя объекта как IIS AppPool<yourappname>

    .
  4. Нажмите на контрольное имя, если оно присутствует, нажмите OK и разрешите разрешения, которые вы хотели дать, затем примените их.

Запустите ваше приложение

.

Для получения дополнительной информации, пожалуйста, обратитесь к этому учебнику.

Вернуться на верх