繁体   English   中英

Python Heroku上的Zombie SharedDataMiddleware

[英]Zombie SharedDataMiddleware on Python Heroku

我正在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') })

我第一次部署应用程序时,可以在herokuapp.com/static上找到./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标头,这意味着您的Web浏览器甚至可能不会向服务器发送请求,只使用缓存中的旧文件。 尝试禁用缓存

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

Flask对静态文件也是如此。 禁用它

app.config['SEND_FILE_MAX_AGE_DEFAULT'] = None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM