diff --git a/lib/web_console/templates/_markup.html.erb b/lib/web_console/templates/_markup.html.erb
index 97181d90..96d48769 100644
--- a/lib/web_console/templates/_markup.html.erb
+++ b/lib/web_console/templates/_markup.html.erb
@@ -1,4 +1,5 @@
diff --git a/lib/web_console/templates/console.js.erb b/lib/web_console/templates/console.js.erb
index de55f2a7..2119b2a0 100644
--- a/lib/web_console/templates/console.js.erb
+++ b/lib/web_console/templates/console.js.erb
@@ -60,15 +60,17 @@ function REPLConsole(config) {
this.commandStorage = new CommandStorage();
this.prompt = getConfig('promptLabel', ' >>');
- this.remotePath = getConfig('remotePath');
+ this.mountPoint = getConfig('mountPoint');
+ this.sessionId = getConfig('sessionId');
}
-REPLConsole.prototype.getUrl = function(path) {
+REPLConsole.prototype.getSessionUrl = function(path) {
+ var parts = [ this.mountPoint, 'repl_sessions', this.sessionId ];
if (path) {
- return this.remotePath + '/' + path;
- } else {
- return this.remotePath;
+ parts.push(path);
}
+ // Join and remove duplicate slashes.
+ return parts.join('/').replace(/([^:]\/)\/+/g, '$1');
};
REPLConsole.prototype.commandHandle = function(line, callback) {
@@ -96,7 +98,7 @@ REPLConsole.prototype.commandHandle = function(line, callback) {
}
}
- putRequest(self.getUrl(), params, function(xhr) {
+ putRequest(self.getSessionUrl(), params, function(xhr) {
var response = parseJSON(xhr.responseText);
var result = isSuccess(xhr.status);
if (result) {
@@ -448,7 +450,7 @@ REPLConsole.prototype.scrollToBottom = function() {
// Change the binding of the console
REPLConsole.prototype.switchBindingTo = function(frameId, callback) {
- var url = this.remotePath + "/trace";
+ var url = this.getSessionUrl('trace');
var params = "frame_id=" + encodeURIComponent(frameId);
postRequest(url, params, callback);
};