gpt4 book ai didi

python - Python Heroku 上的 Zombie SharedDataMiddleware

转载 作者:太空狗 更新时间:2023-10-30 00:08:02 25 4
gpt4 key购买 nike

我正在 Heroku 上设置 Flask 应用程序。在我添加静态文件之前一切正常。我正在使用这个:

from werkzeug import SharedDataMiddleware
app = Flask(__name__)
app.wsgi_app = SharedDataMiddleware(app.wsgi_app, {'/static': os.path.join(os.path.dirname(__file__), 'static') })

我第一次部署应用程序时,./static 中的相应文件将在 herokuapp.com/static 中可用。但是在初始部署之后,Heroku 上的文件永远不会改变。如果我将最后一行更改为:

app.wsgi_app = SharedDataMiddleware(app.wsgi_app, {'/assets': os.path.join(os.path.dirname(__file__), 'static') })

静态文件的新 URL,herokuapp.com/assets,然后我可以看到更新后的文件。

似乎文件的镜像卡在了系统中。我已经更改了四次,仍然可以访问所有 URL。

最佳答案

SharedDataMiddleware 默认发送 Cache-ControlExpires HTTP header ,这意味着您的 Web 浏览器甚至可能不会向服务器发送请求而只是使用旧文件从缓存。尝试 disabling the cache :

app.wsgi_app = SharedDataMiddleware(
app.wsgi_app,
{'/static': os.path.join(os.path.dirname(__file__), 'static')},
cache=False)

Flask 对静态文件做同样的事情。至disable it那里:

app.config['SEND_FILE_MAX_AGE_DEFAULT'] = None

关于python - Python Heroku 上的 Zombie SharedDataMiddleware,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11515804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com