diff --git a/README.md b/README.md
index 50e613c..2901ead 100644
--- a/README.md
+++ b/README.md
@@ -8,13 +8,13 @@ composer require pixelspin/silverstripe-progressivewebapp
```
## Usage
-Install the module, run dev/build and fill in the settings in the siteconfig
-Create a symlink at the root of you website to vendor/pixelspin/silverstripe-progressivewebapp/service-worker.js
-Place the link to the manifest file () in the head of your pages and add the color meta data as well ()
-Include the js (Requirements::javascript('pixelspin/silverstripe-progressivewebapp:resources/js/progressivewebapp.js');)
-
-## Todo
-- Add "add to homescreen" prompt
-- Add offline support
-- Create an you are offline page
-- Improve documentation
+- Install the module, run dev/build and fill in the settings in the siteconfig
+- Include the required js to register the service worker
+```
+Requirements::javascript('pixelspin/silverstripe-progressivewebapp:resources/js/progressivewebapp.js');
+```
+- Add the following tags to the head of your website
+```
+
+
+```
\ No newline at end of file
diff --git a/_config/config.yml b/_config/config.yml
index 00b9baf..a93d01e 100644
--- a/_config/config.yml
+++ b/_config/config.yml
@@ -4,7 +4,8 @@ Name: progressivewebapp
SilverStripe\Control\Director:
rules:
- 'manifest.json': 'Pixelspin\ProgressiveWebApp\Controllers\ProgressiveWebAppController'
+ 'manifest.json': 'Pixelspin\ProgressiveWebApp\Controllers\ManifestController'
+ 'service-worker.js': 'Pixelspin\ProgressiveWebApp\Controllers\ServiceWorkerController'
SilverStripe\SiteConfig\SiteConfig:
extensions:
diff --git a/resources/js/progressivewebapp.js b/resources/js/progressivewebapp.js
index 905cd15..ed35d75 100644
--- a/resources/js/progressivewebapp.js
+++ b/resources/js/progressivewebapp.js
@@ -1,3 +1,6 @@
if ('serviceWorker' in navigator) {
- navigator.serviceWorker.register('/service-worker.js');
+ var baseHref = (document.getElementsByTagName('base')[0] || {}).href;
+ if(baseHref){
+ navigator.serviceWorker.register(baseHref + 'service-worker.js');
+ }
}
diff --git a/service-worker.js b/service-worker.js
deleted file mode 100644
index 0cf7dd8..0000000
--- a/service-worker.js
+++ /dev/null
@@ -1 +0,0 @@
-self.addEventListener('fetch', (event) => {});
diff --git a/src/Controllers/ProgressiveWebAppController.php b/src/Controllers/ManifestController.php
similarity index 98%
rename from src/Controllers/ProgressiveWebAppController.php
rename to src/Controllers/ManifestController.php
index c1cb6f4..27c469c 100644
--- a/src/Controllers/ProgressiveWebAppController.php
+++ b/src/Controllers/ManifestController.php
@@ -5,7 +5,7 @@ namespace Pixelspin\ProgressiveWebApp\Controllers;
use SilverStripe\Control\Controller;
use SilverStripe\SiteConfig\SiteConfig;
-class ProgressiveWebAppController extends Controller {
+class ManifestController extends Controller {
/**
* @var array
diff --git a/src/Controllers/ServiceWorkerController.php b/src/Controllers/ServiceWorkerController.php
new file mode 100644
index 0000000..ba2df9f
--- /dev/null
+++ b/src/Controllers/ServiceWorkerController.php
@@ -0,0 +1,26 @@
+getResponse()->addHeader('Content-Type', 'application/javascript; charset="utf-8"');
+ return $this->renderWith('ServiceWorker');
+ }
+
+}
diff --git a/templates/ServiceWorker.ss b/templates/ServiceWorker.ss
new file mode 100644
index 0000000..8a5c8fc
--- /dev/null
+++ b/templates/ServiceWorker.ss
@@ -0,0 +1 @@
+self.addEventListener('fetch', (event) => {});
\ No newline at end of file