diff --git a/src/sunstone/public/css/login.css b/src/sunstone/public/css/login.css
index baee3d985e..b4236d267f 100644
--- a/src/sunstone/public/css/login.css
+++ b/src/sunstone/public/css/login.css
@@ -52,7 +52,7 @@ div#logo_sunstone {
     top: 80px;
     margin-left: auto;
     margin-right: auto;
-    background: url(/images/opennebula-sunstone-big.png) no-repeat center ;
+    background: url(../images/opennebula-sunstone-big.png) no-repeat center ;
 
     vertical-align: center;
 }
@@ -160,7 +160,4 @@ div#login input#login_btn:hover {
 
   margin-top: 35px;
   margin-left:0px;
-}
-
-
-
+}
\ No newline at end of file
diff --git a/src/sunstone/public/js/layout.js b/src/sunstone/public/js/layout.js
index f094c9a914..2f0340cc10 100644
--- a/src/sunstone/public/js/layout.js
+++ b/src/sunstone/public/js/layout.js
@@ -27,7 +27,7 @@ function popDialog(content){
 }
 
 function popDialogLoading(){
-    var loading = '<div style="margin-top:'+Math.round($("#dialog").height()/6)+'px; text-align: center; width: 100%"><img src="/images/pbar.gif" alt="loading..."/></div>';
+    var loading = '<div style="margin-top:'+Math.round($("#dialog").height()/6)+'px; text-align: center; width: 100%"><img src="images/pbar.gif" alt="loading..." /></div>';
     popDialog(loading);
 }
 
diff --git a/src/sunstone/public/js/login.js b/src/sunstone/public/js/login.js
index 48de29347a..0c30aac51c 100644
--- a/src/sunstone/public/js/login.js
+++ b/src/sunstone/public/js/login.js
@@ -15,7 +15,7 @@
 /* -------------------------------------------------------------------------- */
 
 function auth_success(req, response){
-    window.location.href = "/";
+    window.location.href = ".";
 }
 
 function auth_error(req, error){
diff --git a/src/sunstone/public/js/opennebula.js b/src/sunstone/public/js/opennebula.js
index 299ca9809a..2171cf5eeb 100644
--- a/src/sunstone/public/js/opennebula.js
+++ b/src/sunstone/public/js/opennebula.js
@@ -231,7 +231,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"login");
 
             $.ajax({
-                url: "/login",
+                url: "login",
                 type: "POST",
                 data: {remember: remember},
                 beforeSend : function(req) {
@@ -265,7 +265,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"logout");
 
             $.ajax({
-                url: "/logout",
+                url: "logout",
                 type: "POST",
                 success: function(response)
                 {
@@ -297,7 +297,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/config",
+                url: "config",
                 type: "GET",
                 dataType: "json",
                 success: function(response)
@@ -331,7 +331,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"create", data);
 
             $.ajax({
-                url: "/host",
+                url: "host",
                 type: "POST",
                 dataType: "json",
                 data: JSON.stringify(data),
@@ -363,7 +363,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"delete", id);
 
             $.ajax({
-                url: "/host/" + id,
+                url: "host/" + id,
                 type: "DELETE",
                 success: function()
                 {
@@ -392,7 +392,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/host",
+                url: "host",
                 type: "GET",
                 data: {timeout: timeout},
                 dataType: "json",
@@ -425,7 +425,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"show", id);
 
             $.ajax({
-                url: "/host/" + id,
+                url: "host/" + id,
                 type: "GET",
                 dataType: "json",
                 success: function(response)
@@ -457,7 +457,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/host/" + id + "/action",
+                url: "host/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -489,7 +489,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/host/" + id + "/action",
+                url: "host/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -587,7 +587,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"create",data);
 
             $.ajax({
-                url: "/vnet",
+                url: "vnet",
                 type: "POST",
                 dataType: "json",
                 data: JSON.stringify(data),
@@ -618,7 +618,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"delete", id);
 
             $.ajax({
-                url: "/vnet/" + id,
+                url: "vnet/" + id,
                 type: "DELETE",
                 success: function()
                 {
@@ -647,7 +647,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/vnet",
+                url: "vnet",
                 type: "GET",
                 dataType: "json",
                 data: {timeout: timeout},
@@ -679,7 +679,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"show", id);
 
             $.ajax({
-                url: "/vnet/" + id,
+                url: "vnet/" + id,
                 type: "GET",
                 dataType: "json",
                 success: function(response)
@@ -711,7 +711,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vnet/" + id + "/action",
+                url: "vnet/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -743,7 +743,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vnet/" + id + "/action",
+                url: "vnet/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -785,7 +785,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"create",data);
 
             $.ajax({
-                url: "/vm",
+                url: "vm",
                 type: "POST",
                 dataType: "json",
                 data: JSON.stringify(data),
@@ -816,7 +816,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"delete", id);
 
             $.ajax({
-                url: "/vm/" + id,
+                url: "vm/" + id,
                 type: "DELETE",
                 success: function()
                 {
@@ -845,7 +845,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/vm",
+                url: "vm",
                 type: "GET",
                 dataType: "json",
                 data: {timeout: timeout},
@@ -877,7 +877,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"log", id);
 
             $.ajax({
-                url: "/vm/" + id + "/log",
+                url: "vm/" + id + "/log",
                 type: "GET",
                 success: function(response)
                 {
@@ -906,7 +906,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"show", id);
 
             $.ajax({
-                url: "/vm/" + id,
+                url: "vm/" + id,
                 type: "GET",
                 dataType: "json",
                 success: function(response)
@@ -939,7 +939,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, [id, host]);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -971,7 +971,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1004,7 +1004,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, [id, host]);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1037,7 +1037,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, [id, host]);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1069,7 +1069,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1101,7 +1101,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1133,7 +1133,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1165,7 +1165,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1197,7 +1197,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1229,7 +1229,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1270,7 +1270,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, [id,disk_id, image_name, type]);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1302,7 +1302,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1334,7 +1334,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/vm/" + id + "/action",
+                url: "vm/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1499,7 +1499,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"create", name);
 
             $.ajax({
-                url: "/group",
+                url: "group",
                 type: "POST",
                 dataType: "json",
                 data: JSON.stringify(data),
@@ -1530,7 +1530,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"delete", id);
 
             $.ajax({
-                url: "/group/" + id,
+                url: "group/" + id,
                 type: "DELETE",
                 success: function()
                 {
@@ -1559,7 +1559,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/group",
+                url: "group",
                 type: "GET",
                 dataType: "json",
                 data: {timeout: timeout},
@@ -1600,7 +1600,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"create",data);
 
             $.ajax({
-                url: "/user",
+                url: "user",
                 type: "POST",
                 dataType: "json",
                 data: JSON.stringify(data),
@@ -1631,7 +1631,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"delete", id);
 
             $.ajax({
-                url: "/user/" + id,
+                url: "user/" + id,
                 type: "DELETE",
                 success: function()
                 {
@@ -1660,7 +1660,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/user",
+                url: "user",
                 type: "GET",
                 dataType: "json",
                 data: {timeout: timeout},
@@ -1698,7 +1698,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, passwd);
 
             $.ajax({
-                url: "/user/" + id + "/action",
+                url: "user/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function(response)
@@ -1763,7 +1763,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"register",data);
 
             $.ajax({
-                url: "/image",
+                url: "image",
                 type: "POST",
                 dataType: "json",
                 data: JSON.stringify(data),
@@ -1794,7 +1794,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/image/" + id + "/template",
+                url: "image/" + id + "/template",
                 type: "GET",
                 dataType:"json",
                 success: function(response)
@@ -1829,7 +1829,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, [id, template_obj]);
 
             $.ajax({
-                url: "/image/" + id + "/action",
+                url: "image/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function(response)
@@ -1858,7 +1858,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"delete", id);
 
             $.ajax({
-                url: "/image/" + id,
+                url: "image/" + id,
                 type: "DELETE",
                 success: function()
                 {
@@ -1887,7 +1887,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/image",
+                url: "image",
                 type: "GET",
                 dataType: "json",
                 data: {timeout: timeout},
@@ -1919,7 +1919,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"show", id);
 
             $.ajax({
-                url: "/image/" + id,
+                url: "image/" + id,
                 type: "GET",
                 dataType: "json",
                 success: function(response)
@@ -1951,7 +1951,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/image/" + id + "/action",
+                url: "image/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -1983,7 +1983,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/image/" + id + "/action",
+                url: "image/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -2015,7 +2015,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/image/" + id + "/action",
+                url: "image/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -2047,7 +2047,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/image/" + id + "/action",
+                url: "image/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -2080,7 +2080,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/image/" + id + "/action",
+                url: "image/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -2113,7 +2113,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/image/" + id + "/action",
+                url: "image/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -2155,7 +2155,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"create",data);
 
             $.ajax({
-                url: "/template",
+                url: "template",
                 type: "POST",
                 dataType: "json",
                 data: JSON.stringify(data),
@@ -2187,7 +2187,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/template/" + id + "/template",
+                url: "template/" + id + "/template",
                 type: "GET",
                 dataType:"json",
                 success: function(response)
@@ -2221,7 +2221,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, [id, template_obj]);
 
             $.ajax({
-                url: "/template/" + id + "/action",
+                url: "template/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function(response)
@@ -2253,7 +2253,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/template/" + id + "/action",
+                url: "template/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -2284,7 +2284,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,method, id);
 
             $.ajax({
-                url: "/template/" + id + "/action",
+                url: "template/" + id + "/action",
                 type: "POST",
                 data: JSON.stringify(action),
                 success: function()
@@ -2313,7 +2313,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"list");
 
             $.ajax({
-                url: "/template",
+                url: "template",
                 type: "GET",
                 dataType: "json",
                 data: {timeout: timeout},
@@ -2344,7 +2344,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"show", id);
 
             $.ajax({
-                url: "/template/" + id,
+                url: "template/" + id,
                 type: "GET",
                 dataType: "json",
                 success: function(response)
@@ -2373,7 +2373,7 @@ var OpenNebula = {
             var request = OpenNebula.Helper.request(resource,"delete", id);
 
             $.ajax({
-                url: "/template/" + id,
+                url: "template/" + id,
                 type: "DELETE",
                 success: function()
                 {
diff --git a/src/sunstone/public/js/plugins/groups-tab.js b/src/sunstone/public/js/plugins/groups-tab.js
index a3191eda6c..be557a1ab9 100644
--- a/src/sunstone/public/js/plugins/groups-tab.js
+++ b/src/sunstone/public/js/plugins/groups-tab.js
@@ -122,7 +122,7 @@ var group_buttons = {
     "Group.refresh" : {
         type: "image",
         text: "Refresh list",
-        img: "/images/Refresh-icon.png",
+        img: "images/Refresh-icon.png",
         condition: True
     },
     "Group.create_dialog" : {
diff --git a/src/sunstone/public/js/plugins/hosts-tab.js b/src/sunstone/public/js/plugins/hosts-tab.js
index e2ec4c281e..a5b2c3964a 100644
--- a/src/sunstone/public/js/plugins/hosts-tab.js
+++ b/src/sunstone/public/js/plugins/hosts-tab.js
@@ -214,7 +214,7 @@ var host_buttons = {
     "Host.refresh" : {
         type: "image",
         text: "Refresh list",
-        img: "/images/Refresh-icon.png",
+        img: "images/Refresh-icon.png",
         condition: True
         },
     "Host.create_dialog" : {
diff --git a/src/sunstone/public/js/plugins/images-tab.js b/src/sunstone/public/js/plugins/images-tab.js
index bb6938ee11..afa12f35f4 100644
--- a/src/sunstone/public/js/plugins/images-tab.js
+++ b/src/sunstone/public/js/plugins/images-tab.js
@@ -338,7 +338,7 @@ var image_buttons = {
     "Image.refresh" : {
         type: "image",
         text: "Refresh list",
-        img: "/images/Refresh-icon.png",
+        img: "images/Refresh-icon.png",
         condition: True
     },
     "Image.create_dialog" : {
diff --git a/src/sunstone/public/js/plugins/templates-tab.js b/src/sunstone/public/js/plugins/templates-tab.js
index 312f32c48f..4e2dd92c08 100644
--- a/src/sunstone/public/js/plugins/templates-tab.js
+++ b/src/sunstone/public/js/plugins/templates-tab.js
@@ -685,7 +685,7 @@ var template_buttons = {
     "Template.refresh" : {
         type: "image",
         text: "Refresh list",
-        img: "/images/Refresh-icon.png",
+        img: "images/Refresh-icon.png",
         condition: True
     },
     "Template.create_dialog" : {
diff --git a/src/sunstone/public/js/plugins/users-tab.js b/src/sunstone/public/js/plugins/users-tab.js
index 8c0a860d2f..b1e9c9df12 100644
--- a/src/sunstone/public/js/plugins/users-tab.js
+++ b/src/sunstone/public/js/plugins/users-tab.js
@@ -111,7 +111,7 @@ var user_buttons = {
     "User.refresh" : {
         type: "image",
         text: "Refresh list",
-        img: "/images/Refresh-icon.png",
+        img: "images/Refresh-icon.png",
         condition: True
     },
     "User.create_dialog" : {
diff --git a/src/sunstone/public/js/plugins/vms-tab.js b/src/sunstone/public/js/plugins/vms-tab.js
index 6fbb349cf5..090d10e9d2 100644
--- a/src/sunstone/public/js/plugins/vms-tab.js
+++ b/src/sunstone/public/js/plugins/vms-tab.js
@@ -402,7 +402,7 @@ var vm_buttons = {
     "VM.refresh" : {
         type: "image",
         text: "Refresh list",
-        img: "/images/Refresh-icon.png",
+        img: "images/Refresh-icon.png",
         condition: True
     },
 
diff --git a/src/sunstone/public/js/plugins/vnets-tab.js b/src/sunstone/public/js/plugins/vnets-tab.js
index 5e5a588d0d..922a8d105f 100644
--- a/src/sunstone/public/js/plugins/vnets-tab.js
+++ b/src/sunstone/public/js/plugins/vnets-tab.js
@@ -237,7 +237,7 @@ var vnet_buttons = {
     "Network.refresh" : {
         type: "image",
         text: "Refresh list",
-        img: "/images/Refresh-icon.png",
+        img: "images/Refresh-icon.png",
         condition: True
     },
 
diff --git a/src/sunstone/public/js/sunstone-util.js b/src/sunstone/public/js/sunstone-util.js
index 5d538bf702..1709736362 100644
--- a/src/sunstone/public/js/sunstone-util.js
+++ b/src/sunstone/public/js/sunstone-util.js
@@ -309,7 +309,7 @@ function onError(request,error_json) {
 
     //redirect to login if unauthenticated
     if (error_json.error.http_status=="401") {
-        window.location.href = "/login";
+        window.location.href = "login";
     };
 
     if (!message){
diff --git a/src/sunstone/public/js/sunstone.js b/src/sunstone/public/js/sunstone.js
index 852093dfee..7aa658c361 100644
--- a/src/sunstone/public/js/sunstone.js
+++ b/src/sunstone/public/js/sunstone.js
@@ -17,7 +17,7 @@
 var cookie = {};
 var username = '';
 var uid = '';
-var spinner = '<img src="/images/ajax-loader.gif" alt="retrieving" class="loading_img" />';
+var spinner = '<img src="images/ajax-loader.gif" alt="retrieving" class="loading_img" />';
 
 
 //Sunstone configuration is formed by predifined "actions", main tabs
@@ -382,7 +382,7 @@ function setLogin(){
     $("#logout").click(function(){
         OpenNebula.Auth.logout({
             success:function(){
-                window.location.href = "/login";
+                window.location.href = "login";
             }
         });
         return false;
diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb
index 94e1274f4d..e941bb6cfa 100755
--- a/src/sunstone/sunstone-server.rb
+++ b/src/sunstone/sunstone-server.rb
@@ -122,7 +122,8 @@ end
 # HTML Requests
 ##############################################################################
 get '/' do
-    redirect '/login' unless authorized?
+    return  File.read(File.dirname(__FILE__)+
+                      '/templates/login.html') unless authorized?
 
     time = Time.now + 60
     response.set_cookie("one-user",
diff --git a/src/sunstone/templates/index.html b/src/sunstone/templates/index.html
index 883487d9eb..2d6bff8eb2 100644
--- a/src/sunstone/templates/index.html
+++ b/src/sunstone/templates/index.html
@@ -3,42 +3,42 @@
 <head>
     <title>OpenNebula Admin Console</title>
     <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
-    
-    <!-- Vendor Libraries -->
-    <link rel="stylesheet" type="text/css" href="/vendor/dataTables/demo_table_jui.css" />
-    <link rel="stylesheet" type="text/css" href="/vendor/jQueryUI/jquery-ui-1.8.7.custom.css" />
-    <link rel="stylesheet" type="text/css" href="/vendor/jGrowl/jquery.jgrowl.css" />
-    <link rel="stylesheet" type="text/css" href="/vendor/jQueryLayout/layout-default-latest.css" />
-    <link rel="stylesheet" href="/vendor/noVNC/include/plain.css">
 
-    <script type="text/javascript" src="/vendor/jQuery/jquery-1.4.4.min.js"></script>
-    <script type="text/javascript" src="/vendor/jGrowl/jquery.jgrowl_minimized.js"></script>
-    <script type="text/javascript" src="/vendor/jQueryUI/jquery-ui-1.8.7.custom.min.js"></script>
-    <script type="text/javascript" src="/vendor/jQueryLayout/jquery.layout.min-1.2.0.js"></script>
-    <script type="text/javascript" src="/vendor/dataTables/jquery.dataTables.min.js"></script>
-    <script language="javascript" type="text/javascript" src="/vendor/flot/jquery.flot.min.js"></script>    
+    <!-- Vendor Libraries -->
+    <link rel="stylesheet" type="text/css" href="vendor/dataTables/demo_table_jui.css" />
+    <link rel="stylesheet" type="text/css" href="vendor/jQueryUI/jquery-ui-1.8.7.custom.css" />
+    <link rel="stylesheet" type="text/css" href="vendor/jGrowl/jquery.jgrowl.css" />
+    <link rel="stylesheet" type="text/css" href="vendor/jQueryLayout/layout-default-latest.css" />
+    <link rel="stylesheet" href="vendor/noVNC/include/plain.css">
+
+    <script type="text/javascript" src="vendor/jQuery/jquery-1.4.4.min.js"></script>
+    <script type="text/javascript" src="vendor/jGrowl/jquery.jgrowl_minimized.js"></script>
+    <script type="text/javascript" src="vendor/jQueryUI/jquery-ui-1.8.7.custom.min.js"></script>
+    <script type="text/javascript" src="vendor/jQueryLayout/jquery.layout.min-1.2.0.js"></script>
+    <script type="text/javascript" src="vendor/dataTables/jquery.dataTables.min.js"></script>
+    <script language="javascript" type="text/javascript" src="vendor/flot/jquery.flot.min.js"></script>
 
     <!-- End Vendor Libraries -->
 
-    <link rel="stylesheet" type="text/css" href="/css/application.css" />
-    <link rel="stylesheet" type="text/css" href="/css/layout.css" />
-    <script type="text/javascript" src="/js/opennebula.js"></script>
-    <script type="text/javascript" src="/js/layout.js"></script>
-    <script type="text/javascript" src="/js/sunstone.js"></script>
-    <script type="text/javascript" src="/js/sunstone-util.js"></script>
+    <link rel="stylesheet" type="text/css" href="css/application.css" />
+    <link rel="stylesheet" type="text/css" href="css/layout.css" />
+    <script type="text/javascript" src="js/opennebula.js"></script>
+    <script type="text/javascript" src="js/layout.js"></script>
+    <script type="text/javascript" src="js/sunstone.js"></script>
+    <script type="text/javascript" src="js/sunstone-util.js"></script>
 
     <!--Base plugins-->
-    <script type="text/javascript" src="/js/plugins/dashboard-tab.js"></script>
-    <script type="text/javascript" src="/js/plugins/hosts-tab.js"></script>
-    <script type="text/javascript" src="/js/plugins/groups-tab.js"></script>
-    <script type="text/javascript" src="/js/plugins/templates-tab.js"></script>
-    <script type="text/javascript" src="/js/plugins/vms-tab.js"></script>
-    <script type="text/javascript" src="/js/plugins/vnets-tab.js"></script>
-    <script type="text/javascript" src="/js/plugins/images-tab.js"></script>
-    <script type="text/javascript" src="/js/plugins/users-tab.js"></script>
-    
-    <!--<script type="text/javascript" src="/js/plugins/dummy-plugin.js"></script>-->
-    
+    <script type="text/javascript" src="js/plugins/dashboard-tab.js"></script>
+    <script type="text/javascript" src="js/plugins/hosts-tab.js"></script>
+    <script type="text/javascript" src="js/plugins/groups-tab.js"></script>
+    <script type="text/javascript" src="js/plugins/templates-tab.js"></script>
+    <script type="text/javascript" src="js/plugins/vms-tab.js"></script>
+    <script type="text/javascript" src="js/plugins/vnets-tab.js"></script>
+    <script type="text/javascript" src="js/plugins/images-tab.js"></script>
+    <script type="text/javascript" src="js/plugins/users-tab.js"></script>
+
+    <!--<script type="text/javascript" src="js/plugins/dummy-plugin.js"></script>-->
+
 </head>
 <body>
 <div class="outer-center">
@@ -54,7 +54,7 @@
 
 <div id="header" class="ui-layout-north">
     <div id="logo">
-        <img src="/images/opennebula-sunstone-small.png"/>
+        <img src="images/opennebula-sunstone-small.png"/>
     </div>
     <div id="login-info">
         Welcome <span id="user"></span>&nbsp;|&nbsp;<a href="#" id="logout">Sign Out</a>
diff --git a/src/sunstone/templates/login.html b/src/sunstone/templates/login.html
index ad1d895940..a5bfc6de47 100644
--- a/src/sunstone/templates/login.html
+++ b/src/sunstone/templates/login.html
@@ -2,14 +2,14 @@
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>OpenNebula Admin Console Login</title>
-    <link rel="stylesheet" type="text/css" href="/css/login.css" />
+    <link rel="stylesheet" type="text/css" href="css/login.css" />
 
     <!-- Vendor Libraries -->
-    <script type="text/javascript" src="/vendor/jQuery/jquery-1.4.4.min.js"></script>
+    <script type="text/javascript" src="vendor/jQuery/jquery-1.4.4.min.js"></script>
     <!-- End Vendor Libraries -->
 
-    <script type="text/javascript" src="/js/opennebula.js"></script>
-    <script type="text/javascript" src="/js/login.js"></script>
+    <script type="text/javascript" src="js/opennebula.js"></script>
+    <script type="text/javascript" src="js/login.js"></script>
 
 </head>