У меня была установка, которая работала нормально, используя git для отправки локальных изменений разработки в репозиторий в Digital Ocean, который затем использует ловушку post-receive для отправки главной ветви в / var / www / MYAPPNAME /.Я также использую gunicorn через supervisor для запуска сайта вместе с nginx - теперь, когда я добавил ветку git development, которая отправляется в /var/www/dev.MYAPPNAME/ У меня, похоже, проблемы (возможно, совпадение, возможно, возникла проблема при обновлении конфигурации supervisor / nginx).
Если я сделаю небольшое обновление HTML в моем шаблоне приложения Flask /app/templates/index.html или /base.html для dev версия моего приложения / сайта, я не могу заставить сайт отображать изменения.Субдомен dev, кажется, указывает на производственное приложение, а не на отдельную ветку dev и связанную папку кода.Я могу сказать, что изменения кода попадают в нужную папку (/var/www/dev.MYAPPNAME), но когда я запускаю «sudo supervisorctl reload», как я делаю, чтобы получить изменения кода в рабочей папке для обновления на живом производственном сайте,обновленный текст в моем HTML не отображается.
Я пытался:
- Удаление вручную файлов / папок pycache на сервере
- Перезагрузка супервизора с помощью sudo supervisorctl reload
- Добавление TEMPLATES_AUTO_RELOAD = True и DEBUG = True для моего файла .env, чтобы попытаться заставить Jinja перезагрузить шаблоны
- Перезагрузка Nginx
- Перезагрузка сервера
Файл MYAPPNAME.py (одинаковый для dev и рабочей версии сайта):
from app import app
/ app / init .py (также одинаков для обоих):
from flask import Flask
app = Flask(__name__)
from app import routes
/ app / rout.py (одинаково для обоих сайтов):
from flask import render_template
from app import app
@app.route('/')
@app.route('/index')
def index():
return render_template('index.html', title='MYAPPNAME')
/ app / static просто содержит bootstrap.css и bootstrap.js
/ app / templates содержит base.html и index.html, который расширяет base.html - изменения, которые оба работали нормально до того, как я ввел второй / dev-сайт на сервер, но теперь не распознаются на сайте dev для разработки.
.env file (который я также скопировал.файл flaskenv):
FLASK_APP=MYAPPNAME.py
TEMPLATES_AUTO_RELOAD=True
DEBUG=True
Вот мой /etc/supervisor/conf.d/dev.MYAPPNAME.conf (не будет шокирован, если здесь что-то не так):
[program:dev.MYAPPNAME]
command=/var/www/dev.MYAPPNAME/venv/bin/gunicorn -b localhost:8001 -w 4 MYAPPNAME:app
directory=/var/www/dev.MYAPPNAME
user=MYUSERNAME
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
И мой не-dev /etc/supervisor/conf.d/MYAPPNAME.conf:
[program:MYAPPNAME]
command=/var/www/MYAPPNAME/venv/bin/gunicorn -b localhost:8000 -w 4 MYAPPNAME:app
directory=/var/www/MYAPPNAME
user=MYUSERNAME
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
Конфигурация Nginx для сайта разработчика: /etc/nginx/sites-available/dev.MYAPPNAME (также не будетбудьте шокированы, если что-то не так с этими двумя файлами):
server {
listen 80;
server_name dev.MYAPPNAME;
root /var/www/dev.MYAPPNAME;
access_log /var/log/dev.MYAPPNAME_access.log;
error_log /var/log/dev.MYAPPNAME_error.log;
location / {
proxy_pass http://localhost:8001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
alias /var/www/dev.MYAPPNAME/app/static;
expires 30d;
}
}
Конфигурация Nginx для сайта не-dev: / etc / nginx / sites-available / MYAPPNAME:
server {
listen 80;
server_name MYAPPNAME;
root /var/www/MYAPPNAME;
access_log /var/log/MYAPPNAME_access.log;
error_log /var/log/MYAPPNAME_error.log;
location / {
proxy_pass http://localhost:8000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
alias /var/www/MYAPPNAME/app/static;
expires 30d;
}
}
Я ценю любое направление, которое я могу дать, другие вещи, которые я могу проверить, очевидные ошибки и т. Д. Спасибо!