Django urls.py не обновляется, пока Apache не перезагрузится

django apache mod-wsgi wsgi django-wsgi

7 просмотра

1 ответ

Кажется, что изменения в urls.pyфайле в моем проекте Django игнорируются, если я не перезагружаю Apache. Есть идеи, почему это происходит? Это мой виртуальный хост-файл:

<IfModule mod_ssl.c>
  <VirtualHost www.mydomain.com:443>
    ServerName www.mydomain.com
    ServerAdmin myaddress@mydomain.com

    WSGIScriptAlias / /var/www/html/www.mydomain.com/myproject/wsgi.py
    WSGIDaemonProcess myproject python-path=/var/www/html/www.mydomain.com:/var/www/html/www.mydomain.com/env/lib/python3.6/site-packages
    WSGIProcessGroup myproject

    <Directory /var/www/html/myproject>
       <Files wsgi.py>
          Order deny,allow
          Allow from all
       </Files>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # Let's Encrypt files
    SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
  </VirtualHost>
</IfModule>

В противном случае изменения применяются мгновенно, как я могу проверить с помощью show_urlsкоманды из django-extensions .

Автор: PhilippVerpoort Источник Размещён: 17.05.2019 03:04

Ответы (1)


0 плюса

Потому что файлы Python кэшируются как байт-код и uwsgi использует их.

Вы заметили, что файлы __pycache__ и * .pyc генерируются автоматически каждый раз, когда вы запускаете файлы python, эти файлы являются файлами байт-кода Python.

Вам нужно установить функцию Touch Reload в файле конфигурации uwsgi, чтобы заменить эти кэшированные файлы и внести изменения в ваш код, чтобы они вступили в силу.

Автор: Debendra Размещён: 16.02.2019 03:32
Вопросы из категории :
32x32