Injecting base href into service worker
diff --git a/packages/flutter_tools/lib/src/build_system/targets/web.dart b/packages/flutter_tools/lib/src/build_system/targets/web.dart
index 1398ae8..9610ab5 100644
--- a/packages/flutter_tools/lib/src/build_system/targets/web.dart
+++ b/packages/flutter_tools/lib/src/build_system/targets/web.dart
@@ -392,6 +392,8 @@
'flutter_assets.d',
'web_resources.d',
];
+
+ String get baseHref => environment.defines[kBaseHref] ?? '/';
bool shouldCopy(String name) =>
// Do not copy the deps file.
@@ -456,7 +458,7 @@
if (environment.fileSystem.path.basename(inputFile.path) == 'index.html') {
final IndexHtml indexHtml = IndexHtml(inputFile.readAsStringSync());
indexHtml.applySubstitutions(
- baseHref: environment.defines[kBaseHref] ?? '/',
+ baseHref: baseHref,
serviceWorkerVersion: Random().nextInt(4294967296).toString(),
);
outputFile.writeAsStringSync(indexHtml.content);
@@ -624,6 +626,7 @@
'assets/FontManifest.json',
],
serviceWorkerStrategy: serviceWorkerStrategy,
+ baseHref: baseHref,
);
serviceWorkerFile
.writeAsStringSync(serviceWorker);
diff --git a/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart b/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart
index 24ce814..e849a08 100644
--- a/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart
+++ b/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart
@@ -25,6 +25,7 @@
Map<String, String> resources,
List<String> coreBundle, {
required ServiceWorkerStrategy serviceWorkerStrategy,
+ required String baseHref,
}) {
if (serviceWorkerStrategy == ServiceWorkerStrategy.none) {
return '';
@@ -38,6 +39,7 @@
return globals.localFileSystem
.file(flutterServiceWorkerJsPath)
.readAsStringSync()
+ .replaceAll(r'$$BASE_HREF', '"$baseHref"'),
.replaceAll(
r'$$RESOURCES_MAP',
'{${resources.entries.map((MapEntry<String, String> entry) => '"${entry.key}": "${entry.value}"').join(",\n")}}',
diff --git a/packages/flutter_tools/lib/src/web/file_generators/js/flutter_service_worker.js b/packages/flutter_tools/lib/src/web/file_generators/js/flutter_service_worker.js
index 7a5b124..481a541 100644
--- a/packages/flutter_tools/lib/src/web/file_generators/js/flutter_service_worker.js
+++ b/packages/flutter_tools/lib/src/web/file_generators/js/flutter_service_worker.js
@@ -3,6 +3,7 @@
const TEMP = 'flutter-temp-cache';
const CACHE_NAME = 'flutter-app-cache';
+const BASE_HREF = $$BASE_HREF;
const RESOURCES = $$RESOURCES_MAP;
// The application shell files that are downloaded before a service worker can
// start.