Version static asset URLs to prevent stale proxy browser resources

This commit is contained in:
Codex
2026-10-03 20:05:05 +08:00
parent 8d58ad0a2f
commit 80f8bd72af
5 changed files with 22 additions and 4 deletions
+12
View File
@@ -72,6 +72,18 @@ class WebTests(unittest.TestCase):
self.assertEqual(re.findall(r'<option value="(.*?)">(.*?)</option>', select),
[('hd', '主码流'), ('compat', '子码流')])
def test_asset_urls_follow_release_version(self):
code, headers, body = self.request('/', False)
self.assertEqual(code, 200)
self.assertEqual(headers['Cache-Control'], 'no-store')
self.assertNotIn(b'__ASSET_VERSION__', body)
assets = re.findall(r'(?:src|href)="(/[^"?]+\.(?:js|css)\?v=[^"]+)"', body.decode())
self.assertEqual(len(assets), 13)
version = (app.ROOT / 'VERSION').read_text().strip()
for asset in assets:
self.assertTrue(asset.endswith('?v=' + version))
self.assertEqual(self.request(asset, False)[0], 200)
def test_origin_rejected(self):
self.assertEqual(self.request('/api/storage', data={}, origin='https://example.org')[0], 403)