本地文件系统中有 html/js 个文件的 Cefpython 应用程序

Cefpython app with html/js files in local filesystem

我正在尝试使用 cefpython.

制作混合 python-js 应用程序

我想要:

以下内容似乎可以加载第一页:

browser = cef.CreateBrowserSync(url='file:///html/index.html',
                                window_title="Rulr 2.0")

但是,我遇到了 CORS 问题。 我还需要 运行 网络服务器吗?或者是否有处理本地文件的有效模式?

尝试将 "disable-web-security" 切换到 cef.Initialize 或设置 BrowserSettings.web_security_disabled。

也尝试设置 BrowserSettings.file_access_from_file_urls_allowed 和 BrowserSettings.universal_access_from_file_urls_allowed。

CEF 中有几个用于加载自定义内容的选项,可用于加载文件系统内容而没有任何安全限制。有一个资源处理程序、一个方案处理程序和一个资源管理器。在 CEF Python 中,当前只有资源处理程序可用。 README-Examples.md 页面上有 wxpython-response.py 示例。

资源管理器很容易API加载各种内容,将在Issue #418中实现(欢迎PR): https://github.com/cztomczak/cefpython/issues/418

对于方案处理程序,请参阅问题 #50: https://github.com/cztomczak/cefpython/issues/50

此外,上游 CEF 中还有 GetResourceResponseFilter,这是一个比资源处理程序更简单的选项,可通过 Issue #229 实现: https://github.com/cztomczak/cefpython/issues/229

您还可以 运行 在您的应用程序中使用内部网络服务器(使用 Python 很容易做到)并以这种方式提供文件。上游 CEF 也有内置的网络服务器功能,但我认为这不会在 cefpython 中公开,因为在 Python.

中设置网络服务器已经很容易了