fix(navigation): support Python 3.6 static assets

This commit is contained in:
lingniu
2026-08-12 11:30:07 +08:00
parent 1403b84b0b
commit f707e6ad68
2 changed files with 4 additions and 6 deletions
+3 -5
View File
@@ -125,11 +125,6 @@ def _prewarm_station_directory_cache():
class StationNavigationHandler(SimpleHTTPRequestHandler):
server_version = "LingniuStationNavigation/1.0"
def __init__(self, *args, **kwargs):
# Static files must resolve from this release directory even when the
# local launcher is invoked from the repository root.
super().__init__(*args, directory=str(ROOT), **kwargs)
def do_GET(self):
path = urlparse(self.path).path
if path in {"/", "/index.html"}:
@@ -224,6 +219,9 @@ class StationNavigationHandler(SimpleHTTPRequestHandler):
if __name__ == "__main__":
# Python 3.6 on ECS predates SimpleHTTPRequestHandler(directory=...).
# Resolve static assets from this release directory before serving.
os.chdir(str(ROOT))
server = ThreadingHTTPServer((HOST, PORT), StationNavigationHandler)
threading.Thread(target=_prewarm_station_directory_cache, daemon=True).start()
print(f"Lingniu Station Navigation listening on http://{HOST}:{PORT}")
+1 -1
View File
@@ -31,7 +31,7 @@ class StationNavigationTest(unittest.TestCase):
self.assertRegex(server.STATIC_ASSET_VERSION, r"^[0-9a-f]{16}$")
def test_static_assets_resolve_from_the_release_directory(self):
self.assertIn('directory=str(ROOT)', Path(__file__).parents[1].joinpath('server.py').read_text(encoding='utf-8'))
self.assertIn('os.chdir(str(ROOT))', Path(__file__).parents[1].joinpath('server.py').read_text(encoding='utf-8'))
def test_default_cache_window_is_two_minutes(self):
self.assertEqual(server.STATION_CACHE_SECONDS, 120)