2016-02-23 13 views
6

Einfache Frage hier, für die ich keine klare Antwort finden kann.Können Sie absolute Pfade in Electron verwenden?

Gibt es eine Möglichkeit, absolute Pfade für Abhängigkeiten (z. B. <script src="/my-script.js"></script>) mit Elektron zu verwenden und haben es funktioniert?

Derzeit gerade tut es mainWindow.loadURL('file://' + __dirname + '/index.html');

Welche Lasten index.html ganz gut, aber hier ist das Ding, index.html Lasten

Welche schlägt fehl, weil es in der Wurzel der gesamten Festplatte sieht

Dies würde mein Leben ein wenig einfacher machen, da ich sonst eine Reihe von Vorlagen-URLs umgestalten müsste, und einige würden für immer meine App zerstören, wenn ich jemals Seiten in einem Unterverzeichnis auf der Website hinzufügen wollte (z http://website.com/m/).

Irgendwelche Vorschläge? Vielen Dank!

Antwort

2

Sie können den integrierten URI für die Dateipfadauflösung mit protocol.interceptFileProcotol() überschreiben. Ihr Handler kann dann /my-script.js auf den gewünschten Pfad abbilden.

+1

Wir benutzen 'protocol.registerFileProtocol ('app', ...' mit 'protocol.registerStandardSchemes (['app'])' 'um' window.history.pushState' zu ​​arbeiten und 'webFrame.registerURLSchemeAsSecure ('app') '' make 'getUserMedia' funktioniert. –

2

Relative Pfade gut funktionieren .. Versuchen Sie, die erste / wie so entfernen: <script src="my-script.js"></script>

Wenn Sie wirklich die Ihre Anwendungen absoluten Pfad zugreifen müssen Sie es mit app.getAppPath() bekommen:

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

Und Sie könnte Skripte laden, indem Sie sie mit einer kleinen Menge von Inline-JS in das DOM injizieren.

+0

Sie funktionieren nicht, wenn ich pushState verwende und somit meine Vorlagen von jeder URL geladen werden können. –

Verwandte Themen