Blask App HTML模板在添加到服务器中的DEV版本后未更新



我的设置工作正常,使用git将本地开发更改为数字海洋的存储库,然后使用后接收器钩将主分支发送到/var/www/myAppName/。我还通过主管使用Gunicorn与NGINX一起运行该网站 - 现在我添加了一个Git Develop分支,该分支已发送到/var/www/dev.myappname/我似乎在遇到问题(也许是巧合,也许在更新主管/nginx配置时引入了一个问题。

如果我在烧瓶应用模板中对HTML进行了次要更新/app/templates/index.html或//base.html,则为 dev 我的应用程序/网站的版本,我可以't获取网站以显示更改。开发子域似乎指向生产应用程序,而不是单独的DEV分支和关联的代码文件夹。我可以说,代码更改正在到达正确的文件夹(/var/www/dev.myappname),但是当我运行" sudo susperisorctl reload"时,我会像在生产文件夹中更改代码更改以在实时生产站点上刷新代码更改,我的HTML中的更新文本未显示。

我尝试了:

  • 在服务器上手动删除pycache文件/文件夹
  • sudo superionctl重新加载主管
  • 添加templates_auto_reload = true and 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/routes.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/模板包含base.html和index.html,它扩展了base.html-在我将第二/开发站点介绍给服务器之前,对两者的更改都很好,但现在尚未在开发中识别分支开发站点。

.env文件(我还将其复制到.flaskenv文件):

FLASK_APP=MYAPPNAME.py
TEMPLATES_AUTO_RELOAD=True
DEBUG=True

这是my/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

和我的non-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

dev网站的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 for non-dev网站:/etc/nginx/stites-vailable/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;
    }

}

我感谢可以给出的任何方向,我可以检查的其他事情,明显的错误等。谢谢!

事实证明,这是一个Nginx问题,我没有在server_name中包含域后缀,因此它根本没有看到Dev站点,并且正在从DEV重定向流量.myappname.mydomainsuffix url to myAppName.myDomainSuffix。我以下更新了配置文件,重新启动了NGINX和主管,现在正在工作:

server_name dev.MYAPPNAME.MYDOMAINSUFFIX; 
server_name MYAPPNAME.MYDOMAINSUFFIX;

最新更新