【问题标题】:Can you use absolute paths in Electron?你可以在 Electron 中使用绝对路径吗?
【发布时间】:2016-06-04 17:51:42
【问题描述】:

这里是一个简单的问题,我似乎找不到直接的答案。

有没有办法使用电子依赖的绝对路径(例如<script src="/my-script.js"></script>)并让它工作?

目前它只做mainWindow.loadURL('file://' + __dirname + '/index.html');

加载 index.html 就好了,但事情是这样的,加载 index.html

失败是因为它在整个硬盘驱动器的根目录中查找

这会让我的生活变得轻松一些,否则我将不得不重构一堆模板 URL,如果我想在网站的子目录中添加页面(例如http://website.com/m/)。

有什么建议吗?谢谢!

【问题讨论】:

    标签: javascript html npm gulp electron


    【解决方案1】:

    您可以使用protocol.interceptFileProcotol() 覆盖文件路径解析的内置URI,然后您的处理程序可以将/my-script.js 映射到您想要的任何路径。

    【讨论】:

    • 我们使用protocol.registerFileProtocol('app', ...protocol.registerStandardSchemes(['app']) 使window.history.pushState 工作,webFrame.registerURLSchemeAsSecure('app') 使getUserMedia 工作。
    【解决方案2】:

    相对路径可以正常工作。尝试删除第一个 /,如下所示:<script src="my-script.js"></script>

    如果您确实需要访问您的应用程序的绝对路径,您可以通过app.getAppPath() 获得它:

    var app = require('remote').require('app');
    console.log(app.getAppPath());
    

    您可以通过使用少量内联 JS 将脚本注入 DOM 来加载脚本。

    【讨论】:

    • 如果我使用 pushState,它们将不起作用,因此我的模板可以从任何 url 加载。
    猜你喜欢
    • 2017-12-06
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多