Skip to content

Commit 6a87e8b

Browse files
committed
fix: register javascript mime types for dashboard assets
1 parent b241b46 commit 6a87e8b

2 files changed

Lines changed: 26 additions & 0 deletions

File tree

astrbot/dashboard/server.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import asyncio
22
import hashlib
33
import logging
4+
import mimetypes
45
import os
56
import socket
67
from datetime import datetime
@@ -44,6 +45,13 @@ class _AddrWithPort(Protocol):
4445
APP: Quart
4546

4647

48+
def _ensure_static_asset_mime_types() -> None:
49+
# Override platform-specific mappings so module scripts are always served
50+
# with a JavaScript MIME type, especially on Windows hosts.
51+
mimetypes.add_type("application/javascript", ".js")
52+
mimetypes.add_type("application/javascript", ".mjs")
53+
54+
4755
def _parse_env_bool(value: str | None, default: bool) -> bool:
4856
if value is None:
4957
return default
@@ -68,6 +76,7 @@ def __init__(
6876
self.core_lifecycle = core_lifecycle
6977
self.config = core_lifecycle.astrbot_config
7078
self.db = db
79+
_ensure_static_asset_mime_types()
7180

7281
# Path priority:
7382
# 1. Explicit webui_dir argument
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import mimetypes
2+
3+
from astrbot.dashboard.server import _ensure_static_asset_mime_types
4+
5+
6+
def test_ensure_static_asset_mime_types_registers_javascript_types(monkeypatch):
7+
calls = []
8+
9+
def fake_add_type(mime_type: str, extension: str, strict: bool = True):
10+
calls.append((mime_type, extension, strict))
11+
12+
monkeypatch.setattr(mimetypes, "add_type", fake_add_type)
13+
14+
_ensure_static_asset_mime_types()
15+
16+
assert ("application/javascript", ".js", True) in calls
17+
assert ("application/javascript", ".mjs", True) in calls

0 commit comments

Comments
 (0)