本地文件系统中有 html/js 个文件的 Cefpython 应用程序
Cefpython app with html/js files in local filesystem
我正在尝试使用 cefpython.
制作混合 python-js 应用程序
我想要:
- CEF python 应用程序本地的
- JS 和 HTML 文件(例如,在“./html”、“./js”等中)
- 加载 HTML 个文件之一作为初始页面
- 避免文件相互访问(例如目录之间)的任何 CORS 问题
以下内容似乎可以加载第一页:
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.
中设置网络服务器已经很容易了
我正在尝试使用 cefpython.
制作混合 python-js 应用程序我想要:
- CEF python 应用程序本地的
- JS 和 HTML 文件(例如,在“./html”、“./js”等中)
- 加载 HTML 个文件之一作为初始页面
- 避免文件相互访问(例如目录之间)的任何 CORS 问题
以下内容似乎可以加载第一页:
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.
中设置网络服务器已经很容易了