文章目录
- 前言
- 问题描述与方案(待补充)
- 1、动态设置本地调试目录和打包目录
- 2、构建后运行程序白屏
前言
最近做一个pywebview项目,遇到了一些问题,记录一下,分享给大家,希望能帮助有遇到相似问题的人事。
问题描述与方案(待补充)
1、动态设置本地调试目录和打包目录
- 通过区分开发和生产环境还设置静态资源目录和开启调试
- 代码示例
#静态目录的开发、生产环境设置
if getattr(sys, "frozen", False):
# 如果是打包后的可执行文件
base_path = sys._MEIPASS
# 定义 Vue 构建后的 HTML 文件路径
html_file_path = os.path.join(base_path, "dist", "index.html")
if_debug = False
else:
# 如果是开发环境
base_path = os.path.dirname(os.path.abspath(__file__))
# 定义 Vue 构建后的 HTML 文件路径
html_file_path = os.path.join(base_path, "http://localhost:5173")
if_debug = True
webview.create_window(
title="RPA Client", # 窗口标题
url=html_file_path, # 加载的 URL
)
webview.start(debug=ifDebug)
2、构建后运行程序白屏
- 错误提示:Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/plain”. Strict MIME type checking is enforced for module scripts per HTML spec.
- 解决方案:
通过设置js的模块类型,解决js不能正常加载问题,代码示例如下
import webview
import mimetypes
from gui_api import MainWindowApi
def main():
"""Main"""
mimetypes.add_type("application/javascript", ".js")
api = MainWindowApi()
window = webview.create_window(
"Character Card Viewer", url="dist/index.html", js_api=api
)