Aktualisieren des Browser-Cache auf der Flasche

Dec 13 2020

Ich habe einen kleinen Flaschenserver, den ich hauptsächlich zum Experimentieren verwende, und Tools, die ich für den Eigenbedarf entwickle (in meinem Heimnetzwerk). Es läuft im Entwicklungsmodus auf einer Himbeer-Pi-Maschine. Es ist so konfiguriert, dass es beim Start gestartet wird über rc.local:

sudo -H -u pi /home/pi/Server/start.sh &

und die start.shDatei liest

#!/bin/bash

cd /home/pi/Server
source /home/pi/Server/venv/bin/activate
export FLASK_APP=/home/pi/Server/app.py
export FLASK_ENV=development
export FLASK_RUN_HOST=192.168.1.104
export FLASK_RUN_PORT=5001

flask run

In den ersten paar Tagen lief alles gut, aber jetzt erhalte ich den folgenden Fehler:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3/dist-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2291, in wsgi_app
    ctx.push()
  File "/usr/lib/python3/dist-packages/flask/ctx.py", line 377, in push
    self.app, self.request
  File "/usr/lib/python3/dist-packages/flask/sessions.py", line 343, in open_session
    data = s.loads(val, max_age=max_age)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 643, in loads
    .unsign(s, max_age, return_timestamp=True)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 466, in unsign
    return value, self.timestamp_to_datetime(timestamp)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 404, in timestamp_to_datetime
    return datetime.utcfromtimestamp(ts + EPOCH)
OverflowError: timestamp out of range for platform time_t

Nach dem, was ich hier sehe , ist dies ein Problem des Browser-Cache. Wie kann ich flask anweisen, damit umzugehen?

Antworten

1 KKS Dec 13 2020 at 13:49

Sieht aus wie Sie Sitzungen / Cookies verwenden? Versuchen Sie es zu untersuchen, vielleicht ist das Datum nicht richtig oder ungültig. Versuchen Sie es zu löschen session.clear()oder verwenden Sie ein kürzeres Ablaufdatum. Ich hatte auch Probleme nach dem Upgrade von Python 2 auf 3, die die Cookies durcheinander gebracht haben. Wenn Sie dies getan haben, müssen Sie Ihren Cache leeren, damit Python3-Datums- / Zeit-Cookies gesetzt werden können.

Abdur-RahmaanJanhangeer Dec 13 2020 at 13:44

Dies scheint ein Fehler zu sein, wenn die von diesem Adafruit CircuitPython NTP-Problem zurückgegebene Zeit 0 ist . Ein direkter Ansatz wäre, einige Kolbenabhängigkeiten mit einem PR zu patchen.

Dies scheint jedoch eher ein Fehler mit Ihrem Cache-Alter zu sein. Versuchen Sie es auf eine kurze Zeit zu reduzieren

@app.after_request
def after_request(response):
    response.headers["Cache-Control"] = "max-age=300" # in second
    return response