2016-02-23 11 views
6

ここで私はまっすぐ答えを見つけることができないような単純な質問。エレクトロンで絶対パスを使用できますか?

依存関係に絶対パス(例:<script src="/my-script.js"></script>)を電子で使用する方法はありますか?

は現在、それだけでないmainWindow.loadURL('file://' + __dirname + '/index.html');

どの負荷index.htmlがうまく、しかし、ここでのことだ、index.htmlをロードし、それが全体のハードドライブ

のルートが検索されますので、失敗し

これは私の人生をかなり楽にしてくれるでしょう。それ以外の場合、テンプレートURLをリファクタリングして、ウェブサイトのサブディレクトリにページを追加したいと思ったら、永遠に私のアプリケーションを壊してしまうでしょう。 http://website.com/m/)。

提案がありますか?ありがとう!

答えて

2

protocol.interceptFileProcotol()を使用して組み込みURIをファイルパスの解決に上書きすることができます。ハンドラは、/my-script.jsを任意のパスにマップできます。

+1

'protocol.registerStandardSchemes(['app'])'で 'protocol.registerFileProtocol( '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に注入してスクリプトを読み込むことができました。

+0

私はpushStateを使用しているので、テンプレートはどのURLからでもロードできます。 –

関連する問題