отключить кеш на apache с бутылкой python wsgi - PullRequest
0 голосов
/ 25 апреля 2018

У меня проблема при разработке в Python Bottle на Apache.Каждый раз, когда я меняю файл dbmanager.py, который импортирую в основной app.wsgi, ничего не меняется.Мне нужно "дотронуться" до app.wsgi, чтобы увидеть изменения в dbmanager.py или перезапустить apache.Я перепробовал все: изменения в .htaccess, apache Virtual Host config.Но все еще ничего.Есть идеи?

Путь к моим файлам:

/var/www/paka/public_html/edi/api/app.wsgi

У меня есть два файла:

app.wsgi

import os, sys
from os.path import dirname
sys.path.append(dirname(__file__))

import bottle
from bottle import route, run, template, post, request, response
bottle.debug(True)
bottle.TEMPLATES.clear()

import dbmanager
c = dbmanager.connect()

@route('/hello/<name>')
def index(name):
    #return hello.world()  # only log in console
    return template('<b>Hello  {{name}}</b>!' + c, name=name)

application = bottle.default_app()

и dbmanager.py

import mysql, mysql.connector

def connect():
    return "123456"

Мой .htaccess

# DISABLE CACHING
ExpiresActive On
ExpiresDefault A1
Header append Cache-Control must-revalidate

<IfModule mod_headers.c>
        Header set Cache-Control "no-cache, no-store, must-revalidate"
        Header set Pragma "no-cache"
        Header set Expires 0
</IfModule>

<FilesMatch "\.(css|flv|gif|htm|html|ico|jpe|jpeg|jpg|js|png|pdf|swf|txt|py|pcc)$">
        <IfModule mod_expires.c>
                ExpiresActive Off
        </IfModule>
        <IfModule mod_headers.c>
                FileETag None
                Header unset ETag
                Header unset Pragma
                Header unset Cache-Control
                Header unset Last-Modified
                Header set Pragma "no-cache"
                Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
                Header set Expires "Mon, 10 Apr 1972 00:00:00 GMT"
        </IfModule>
</FilesMatch>

Мой конфиг VirtualHost:

WSGIDaemonProcess bottle user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias / /var/www/paka/public_html/edi/api/app.wsgi

<Directory /var/www/paka/public_html/edi/api/>
    WSGIProcessGroup bottle
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
</Directory>

1 Ответ

0 голосов
/ 25 апреля 2018

Тема перезагрузки исходного кода подробно описана в документации mod_wsgi.

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

Еще лучше, для разработки, используйте mod_wsgi-express и используйте опцию --reload-on-changes.

Слишком много подробностей в документации по этой теме, чтобы вырезать и вставить оптом здесь.

...