背景
用户电脑安装DTEmpower软件打开白屏,原因是用户的电脑系统注册表有问题,本文做法是python应用程序添加相关minetype兜底
需要添加的minetype如下:
[HKEY_CLASSES_ROOT\.js]
"Content Type"="application/javascript"
[HKEY_CLASSES_ROOT\.mjs]
"Content Type"="application/javascript"
[HKEY_CLASSES_ROOT\.css]
"Content Type"="text/css"
[HKEY_CLASSES_ROOT\.html]
"Content Type"="text/html"
[HKEY_CLASSES_ROOT\.htm]
"Content Type"="text/html"
[HKEY_CLASSES_ROOT\.json]
"Content Type"="application/json"
[HKEY_CLASSES_ROOT\.svg]
"Content Type"="image/svg+xml"验证
启动windows沙盒修改
计算机\HKEY_CLASSES_ROOT\.js
2.如图改乱掉(需要注意:直接删掉所有的其实也能正常打开,但是把如图content type改错就会白屏)

3.打开未添加兜底策略之前的版本

4.打开添加了兜底策略后的版本

相关代码
import logging.config
import mimetypes
from collections.abc import Iterable
from visual_client.config import config
from .build.custom import current_custom
from .conf import app_settings
__all__ = ["init_env"]
logger = logging.getLogger(__name__)
config.app_name = current_custom.app_name
app_settings.setup()
def init_mimetypes():
mimetypes.add_type("application/javascript", ".js")
mimetypes.add_type("application/javascript", ".mjs")
mimetypes.add_type("text/css", ".css")
mimetypes.add_type("text/html", ".html")
mimetypes.add_type("application/json", ".json")
mimetypes.add_type("image/svg+xml", ".svg")
def init_env(widgets=None):
"""visual_client.serve.start_worker 会调用 init_env 初始化环境"""
from . import env
from .translator import init_translations
init_translations()
init_mimetypes()
widgets = widgets or [env.toolbox_file]
if isinstance(widgets, Iterable):
from .persistence.toolbox import toolbox_mgr
for path in widgets:
toolbox_mgr.load(path)
logger.debug(f"Attach widgets: {path}")