你能在Electron中使用绝对路径吗?

12

这里有一个简单的问题,但我似乎找不到一个直截了当的答案。

在 electron 中使用绝对路径来引入依赖项(例如 <script src="/my-script.js"></script>),有什么办法可以使其工作?

目前只是使用了 mainWindow.loadURL('file://' + __dirname + '/index.html');

它很好地加载了 index.html,但问题在于 index.html 加载了

这会失败,因为它在整个硬盘根目录中查找。

如果没有其他方法,那将让我的生活变得更加轻松,否则我将不得不重构大量的模板 URL,如果我想要添加子目录网站上的页面(例如 http://website.com/m/),某些URL将永远破坏我的应用程序。

有什么建议吗?谢谢!

2个回答

3

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


3
我们使用protocol.registerFileProtocol('app', ...)е’Њprotocol.registerStandardSchemes(['app'])来使得window.history.pushStateиѓЅе¤џе·ҐдЅњпјЊеђЊж—¶дЅїз”ЁwebFrame.registerURLSchemeAsSecure('app')来使得getUserMediaиѓЅе¤џе·ҐдЅњгЂ‚ - Martin Ždila

2

相对路径完全可以正常工作。尝试像这样删除第一个/<script src="my-script.js"></script>

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

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

您可以通过注入少量的内联JS代码将脚本加载到DOM中。


如果我使用pushState,它们就无法工作,因此我的模板可以从任何URL加载。 - Colton Voege

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接