diff --git a/{{cookiecutter.out_dir}}/web/flutter_bootstrap.js b/{{cookiecutter.out_dir}}/web/flutter_bootstrap.js index 802762a..5daf6d7 100644 --- a/{{cookiecutter.out_dir}}/web/flutter_bootstrap.js +++ b/{{cookiecutter.out_dir}}/web/flutter_bootstrap.js @@ -3,6 +3,7 @@ var flutterConfig = { multiViewEnabled: flet.multiView, + entryPointBaseUrl: flet.entryPointBaseUrl, assetBase: flet.assetBase }; if (flet.webRenderer != "auto") { diff --git a/{{cookiecutter.out_dir}}/web/index.html b/{{cookiecutter.out_dir}}/web/index.html index 82ba743..7f1a3ee 100644 --- a/{{cookiecutter.out_dir}}/web/index.html +++ b/{{cookiecutter.out_dir}}/web/index.html @@ -25,6 +25,7 @@ multiView: false, noCdn: "{{ cookiecutter.no_cdn }}".toLowerCase() == "true", webSocketEndpoint: "/ws", + entryPointBaseUrl: "/", assetBase: "/", routeUrlStrategy: "{{ cookiecutter.route_url_strategy }}", canvasKitBaseUrl: "/canvaskit/", diff --git a/{{cookiecutter.out_dir}}/web/python.js b/{{cookiecutter.out_dir}}/web/python.js index db2e34a..f03d2f6 100644 --- a/{{cookiecutter.out_dir}}/web/python.js +++ b/{{cookiecutter.out_dir}}/web/python.js @@ -6,13 +6,14 @@ let _documentUrl = document.URL; // This method is called from Dart on backend.connect() // dartOnMessage is called on backend.onMessage // it accepts "data" of type JSUint8Array -globalThis.jsConnect = async function(appId, args, dartOnMessage) { +globalThis.jsConnect = async function (appId, args, dartOnMessage) { let app = { "dartOnMessage": dartOnMessage }; console.log(`Starting up Python worker: ${appId}, args: ${args}`); _apps[appId] = app; - app.worker = new Worker("python-worker.js"); + app.worker = new Worker((flet.entryPointBaseUrl.endsWith("/") ? + flet.entryPointBaseUrl.slice(0, -1) : flet.entryPointBaseUrl) + "python-worker.js"); var error; app.worker.onmessage = (event) => { @@ -50,7 +51,7 @@ globalThis.jsConnect = async function(appId, args, dartOnMessage) { // Called from Dart on backend.send // data is a message serialized to JSUint8Array -globalThis.jsSend = async function(appId, data) { +globalThis.jsSend = async function (appId, data) { if (appId in _apps) { const app = _apps[appId]; app.worker.postMessage(data); @@ -58,7 +59,7 @@ globalThis.jsSend = async function(appId, data) { } // Called from Dart on channel.disconnect -globalThis.jsDisconnect = async function(appId) { +globalThis.jsDisconnect = async function (appId) { if (appId in _apps) { console.log(`Terminating Python worker: ${appId}`); const app = _apps[appId];