我正在使用 CEF 迈出第一步。我知道一些 Python,所以我正在使用 CEFPython。我正在制作一个简单的应用程序,使用 Python 处理来自本地数据库的一些数据,然后将这些数据写入 JSON 文件。目标是最终使用 HTML、JS 和 CSS 很好地显示 JSON 数据。
我开始从 Github 存储库修改tutorial.py文件。首先,我将 HTML 代码放在一个变量中,并以这种方式读取它:
HTML_code = open("test.html", "r").read()
然后我创建一个浏览器:
browser = cef.CreateBrowserSync(url=html_to_data_uri(HTML_code),
settings = browser_settings)
现在,在 HTML 的标题中,我这样调用 JSON 文件:
<script src="test.json"></script>
我可以在 Chrome 上完美呈现网站以及 JSON 文件。但是使用 CEFPython,我无法以这种方式加载 JSON 文件。我猜可能存在一些CORS问题。
我尝试按照此答案的建议修改浏览器和 cef.Initialize 设置。但这些变化似乎没有任何效果。这就是我尝试设置它们的方式:
switches = {
"disable-web-security": ""
}
browser_settings = {
"file_access_from_file_urls_allowed": "",
"universal_access_from_file_urls_allowed": "",
"web_security_disabled": ""
}
cef.Initialize(settings=settings, switches=switches)
set_global_handler()
HTML_code = open("test.html", "r").read()
browser = cef.CreateBrowserSync(url=html_to_data_uri(HTML_code),
settings = browser_settings)
所有文件(python 脚本、HTML 和 JSON)都在同一个文件夹中。我正在使用该文件夹上终端中的“python test.py”来运行它。我不想使用完整路径来调用文件,因为该程序将被其他不具有相同路径的人使用。
如何正确加载 JSON 文件?