我正在尝试使用cefpython创建一个混合的python-js应用程序。
我想要:
以下似乎可以加载第一页:
browser = cef.CreateBrowserSync(url='file:///html/index.html',
window_title="Rulr 2.0")
但是,然后我遇到了CORS问题。 我还需要运行网络服务器吗?还是有一种有效的本地文件处理模式?
答案 0 :(得分:2)
尝试将“ disable-web-security”开关传递给cef。初始化或设置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,这比资源处理程序更容易选择,可通过问题#229实施: https://github.com/cztomczak/cefpython/issues/229
您还可以在应用程序内部运行内部Web服务器(易于使用Python)并以这种方式提供文件。上游CEF还具有内置的Web服务器功能,但是我不认为这会在cefpython中公开,因为在Python中设置Web服务器已经很容易。