以前つくったアプリ ですが、コマンドラインから実行する分には問題なかったのですが、アプリ化すると動かなくなってしまい困ってました。
結果として、パスを絶対パスにすることによって動くようになり、
アドレスを追加することによって他のデバイスからのアクセスも可能となりました。
JavaScript
main.js
(() => { "use strict"; var electron = require("electron"), http = require("http"), nodeStatic = require("node-static"), app = electron.app, BrowserWindow = electron.BrowserWindow, file = new nodeStatic.Server(__dirname + "/web/"), // 絶対パスに変更 mainWindow; http.createServer((request, response) => { request.on("end", () => { switch (request.method) { case "GET": file.serve(request, response); break; } }).resume(); }).listen(3000, "0.0.0.0"); // アドレスを追加 app.on("ready", function() { mainWindow = new BrowserWindow({ width : 600, height : 600, x : 0, y : 0, frame : true, fullscreen : false }); mainWindow.loadURL("file://" + __dirname + "/app/index.html"); }); app.on("window-all-closed", function() { app.quit(); }); })();
HTML
app/index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>APP</title> </head> <body> <h1>WEB SERVER</h1> <p>ブラウザで 0.0.0.0:3000 にアクセスしてください。</p> </body> </html>
web/index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>WEB</title> </head> <body> <h1>WEB SERVER</h1> </body> </html>