代码之家  ›  专栏  ›  技术社区  ›  Elliot Woods

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

  •  3
  • Elliot Woods  · 技术社区  · 6 年前

    我正在尝试用cefpython制作一个混合的python js应用程序。

    我想要:

    • 加载其中一个HTML文件作为初始页
    • 避免文件相互访问时出现任何CORS问题(例如,在目录之间)

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

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

    不过,然后我就碰到了CORS的问题。 我还需要运行Web服务器吗?还是有一种处理本地文件的有效模式?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Czarek Tomczak    6 年前

    请尝试将“禁用web安全”开关传递给cef。初始化或设置BrowserSettings.web_security_disabled。

    请尝试设置BrowserSettings.file_access_from_file_url_allowed和BrowserSettings.universal_access_from_file_url_allowed。

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

    资源管理器是一个非常容易加载各种内容的API,它将在第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