diff --git a/vnc_lite.html b/vnc_lite.html
index 4a96d448..53647370 100644
--- a/vnc_lite.html
+++ b/vnc_lite.html
@@ -187,7 +187,21 @@
}
var password = WebUtil.getConfigVar('password', '');
- var path = WebUtil.getConfigVar('path', 'websockify');
+
+ var defaultPath = 'websockify';
+ // If noVNC is not being served at the root path,
+ // prefix the default websocket path with the server path.
+ var pathName = window.location.pathname.slice(1);
+ if (pathName.length != 0) { // We are not at the root path
+ if (pathName.slice(-1) == '/') {
+ // There's a trailing slash.
+ defaultPath = pathName + 'websockify';
+ } else {
+ // There's no trailing slash.
+ defaultPath = pathName + '/websockify';
+ }
+ }
+ var path = WebUtil.getConfigVar('path', defaultPath);
// If a token variable is passed in, set the parameter in a cookie.
// This is used by nova-novncproxy.