diff --git a/config/production.json b/config/production.json
index 8179dd7..0ef2a1f 100644
--- a/config/production.json
+++ b/config/production.json
@@ -1,6 +1,6 @@
 {
   "api": {
-    "baseUrl": "/api"
+    "baseUrl": "/contactdatabase/api"
   },
 
   "paths": {
diff --git a/hooks/pre-build.js b/hooks/pre-build.js
index 3caed32..8cd3264 100644
--- a/hooks/pre-build.js
+++ b/hooks/pre-build.js
@@ -42,7 +42,7 @@
 }
 
 // Set environment variable to "production"
-setEnvironment('./src/config/env.json', 'production');
+setEnvironment('./config/env.json', 'production');
 
 // Merge all localization files into one
-mergeAndSaveJsonFiles(localizationSourceFilesDE, "./src/i18n/de.json");
+mergeAndSaveJsonFiles(localizationSourceFilesDE, "./i18n/de.json");
diff --git a/package.json b/package.json
index 4410a4f..ab103bc 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
     "sy-pre-build": "node hooks/pre-build.js",
     "sy-post-build": "node hooks/post-build.js",
     "sw": "sw-precache --root=./dist --config=sw-precache-config.js",
-    "sy-build": "npm run sy-pre-build && ng build --prod --aot && npm run sy-post-build && npm run sw",
+    "sy-build": "npm run sy-pre-build && ng build --base-href ../contactdatabase/ --prod --aot && npm run sy-post-build && npm run sw",
     "start-in-docker": "npm run sy-pre-start && ng serve --optimization=false --vendor-chunk --common-chunk --host=0.0.0.0 --disableHostCheck=true --proxy-config proxy-docker.conf.json"
   },
   "private": true,
diff --git a/src/app/app-config.service.ts b/src/app/app-config.service.ts
index 75b6da4..b2f133d 100644
--- a/src/app/app-config.service.ts
+++ b/src/app/app-config.service.ts
@@ -10,22 +10,24 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
-import { Injectable } from '@angular/core';
+import { Injectable, Inject } from '@angular/core';
 import { Observable } from 'rxjs';
 import { Http, Headers, RequestOptions } from '@angular/http';
+import { APP_BASE_HREF } from '@angular/common'; 
 
 @Injectable()
 export class ConfigService {
   private config: Object;
-  private env: Object;
+  private env: Object;  
 
-  constructor(private http: Http) {}
+  constructor(private http: Http, 
+    @Inject(APP_BASE_HREF) private baseHref: string) {}
 
   /**
    * Loads the environment config file first. Reads the environment variable from the file
    * and based on that loads the appropriate configuration file - development or production
    */
-  load() {
+  load() {    
     return new Promise((resolve, reject) => {
       const headers = new Headers({
         Accept: 'application/json',
@@ -34,13 +36,13 @@
       });
 
       this.http
-        .get('/config/env.json')
+        .get(this.baseHref + 'config/env.json')
         .map(res => res.json())
         .subscribe(env_data => {
           this.env = env_data;
 
           this.http
-            .get('/config/' + env_data.env + '.json')
+            .get(this.baseHref + 'config/' + env_data.env + '.json')
             .map(res => res.json())
             .catch((error: any) => {
               return Observable.throw(error.json().error || 'Server error');
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 73cb65f..dfca123 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -18,7 +18,7 @@
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { NgModule, APP_INITIALIZER } from '@angular/core';
 import { FormsModule } from '@angular/forms';
-import { CommonModule } from '@angular/common';
+import { CommonModule, APP_BASE_HREF, PlatformLocation } from '@angular/common';
 
 // Routes
 import { AppRoutingModule } from '@app/app-routing.module';
@@ -55,6 +55,15 @@
 import { ContainersModule } from '@shared/containers';
 import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';
 
+/**
+ * Get the BaseHref which is defined in the index.html ( <base href="/"> ). 
+ * The "base href" in the index.html can be set via ng nuild for different enviroments.
+ * Example: ng build --prod --base-href ../contactdatabase/
+ */
+
+export function getBaseHref(platformLocation: PlatformLocation): string {
+  return platformLocation.getBaseHrefFromDOM();
+}
 
 /**
  * Calling functions or calling new is not supported in metadata when using AoT.
@@ -115,6 +124,11 @@
       deps: [ConfigService],
       multi: true,
     },
+    {
+    provide: APP_BASE_HREF, 
+    useFactory: getBaseHref,
+    deps: [PlatformLocation]
+    }
   ],
   bootstrap: [AppComponent],
 })
diff --git a/src/index.html b/src/index.html
index d267e5a..d23b001 100644
--- a/src/index.html
+++ b/src/index.html
@@ -22,15 +22,5 @@
 </head>
 <body>
   <div class="loading"></div>
-
-  <script>
-    if ('serviceWorker' in navigator) {
-      navigator.serviceWorker.register('/service-worker.js').then(function(registration) {
-        console.log('Service Worker registered');
-      }).catch(function(err) {
-        console.log('Service Worker registration failed: ', err);
-      });
-    }
-  </script>
 </body>
 </html>
