diff --git a/nbgrader/server_extensions/formgrader/static/js/manage_assignments.js b/nbgrader/server_extensions/formgrader/static/js/manage_assignments.js
index 4a07a0c45..acf940d81 100644
--- a/nbgrader/server_extensions/formgrader/static/js/manage_assignments.js
+++ b/nbgrader/server_extensions/formgrader/static/js/manage_assignments.js
@@ -103,7 +103,7 @@ var AssignmentUI = Backbone.View.extend({
this.$name.append($("")
.text(name)
- .map(linkTo("directory", url_prefix + "/" + this.model.get("source_path")))
+ .map(linkTo("directory", url_prefix + "/" + this.model.get("source_path"), base_url))
);
// duedate
@@ -150,7 +150,7 @@ var AssignmentUI = Backbone.View.extend({
var release_path = this.model.get("release_path");
if (release_path) {
this.$preview.append($("")
- .map(linkTo("directory", url_prefix + "/" + release_path))
+ .map(linkTo("directory", url_prefix + "/" + release_path, base_url))
.append($("")
.addClass("glyphicon glyphicon-search")
.attr("aria-hidden", "true")
diff --git a/nbgrader/server_extensions/formgrader/static/js/utils.js b/nbgrader/server_extensions/formgrader/static/js/utils.js
index 05c50aec1..1ec55ffb8 100644
--- a/nbgrader/server_extensions/formgrader/static/js/utils.js
+++ b/nbgrader/server_extensions/formgrader/static/js/utils.js
@@ -88,17 +88,20 @@ var insertDataTable = function (tbl) {
});
};
-var linkTo = function (type, path) {
+var linkTo = function (type, path, base) {
/*
* Connect a link in the appropriate manner for the context.
* - If we're in the outermost frame, assume notebook and use an href.
* - If we're in an iframe, assume lab and send a message.
*/
if (window === window.top) {
+ if (typeof base === "undefined") {
+ base = "";
+ }
var prefix = {
- notebook: "/notebooks/",
- file: "/edit/",
- directory: "/tree/"
+ notebook: base + "/notebooks/",
+ file: base + "/edit/",
+ directory: base + "/tree/"
}[type];
return (_, el) => {