diff --git a/src/public/javascripts/dialogs/export.js b/src/public/javascripts/dialogs/export.js
index 3e8eb396a..fc8b392be 100644
--- a/src/public/javascripts/dialogs/export.js
+++ b/src/public/javascripts/dialogs/export.js
@@ -74,7 +74,7 @@ $form.on('submit', () => {
function exportBranch(branchId, type, format, version) {
taskId = utils.randomString(10);
- const url = utils.getHost() + `/api/notes/${branchId}/export/${type}/${format}/${version}/${taskId}`;
+ const url = utils.getUrlForDownload(`api/notes/${branchId}/export/${type}/${format}/${version}/${taskId}`);
utils.download(url);
}
diff --git a/src/public/javascripts/dialogs/note_revisions.js b/src/public/javascripts/dialogs/note_revisions.js
index 952ec04d4..8656bfe9b 100644
--- a/src/public/javascripts/dialogs/note_revisions.js
+++ b/src/public/javascripts/dialogs/note_revisions.js
@@ -102,7 +102,9 @@ async function setContentPane() {
const $downloadButton = $('');
$downloadButton.on('click', () => {
- utils.download(utils.getHost() + `/api/notes/${revisionItem.noteId}/revisions/${revisionItem.noteRevisionId}/download`);
+ const url = utils.getUrlForDownload(`api/notes/${revisionItem.noteId}/revisions/${revisionItem.noteRevisionId}/download`);
+
+ utils.download(url);
});
$titleButtons.append($downloadButton);
diff --git a/src/public/javascripts/services/note_detail_book.js b/src/public/javascripts/services/note_detail_book.js
index c4445323d..09ed86bf5 100644
--- a/src/public/javascripts/services/note_detail_book.js
+++ b/src/public/javascripts/services/note_detail_book.js
@@ -185,8 +185,7 @@ class NoteDetailBook {
}
else if (type === 'file') {
function getFileUrl() {
- // electron needs absolute URL so we extract current host, port, protocol
- return utils.getHost() + "/api/notes/" + note.noteId + "/download";
+ return utils.getUrlForDownload("api/notes/" + note.noteId + "/download");
}
const $downloadButton = $('');
diff --git a/src/public/javascripts/services/note_detail_file.js b/src/public/javascripts/services/note_detail_file.js
index 9724ac376..0a3dea656 100644
--- a/src/public/javascripts/services/note_detail_file.js
+++ b/src/public/javascripts/services/note_detail_file.js
@@ -87,8 +87,7 @@ class NoteDetailFile {
}
getFileUrl() {
- // electron needs absolute URL so we extract current host, port, protocol
- return utils.getHost() + "/api/notes/" + this.ctx.note.noteId + "/download";
+ return utils.getUrlForDownload("api/notes/" + this.ctx.note.noteId + "/download");
}
show() {}
diff --git a/src/public/javascripts/services/note_detail_image.js b/src/public/javascripts/services/note_detail_image.js
index d0baaaa2f..f877dce48 100644
--- a/src/public/javascripts/services/note_detail_image.js
+++ b/src/public/javascripts/services/note_detail_image.js
@@ -98,8 +98,7 @@ class NoteDetailImage {
}
getFileUrl() {
- // electron needs absolute URL so we extract current host, port, protocol
- return utils.getHost() + `/api/notes/${this.ctx.note.noteId}/download`;
+ return utils.getUrlForDownload(`api/notes/${this.ctx.note.noteId}/download`);
}
show() {}
diff --git a/src/public/javascripts/services/utils.js b/src/public/javascripts/services/utils.js
index 8d252f666..f5f3aafbd 100644
--- a/src/public/javascripts/services/utils.js
+++ b/src/public/javascripts/services/utils.js
@@ -214,6 +214,20 @@ async function clearBrowserCache() {
}
}
+/**
+ * @param url - should be without initial slash!!!
+ */
+function getUrlForDownload(url) {
+ if (isElectron()) {
+ // electron needs absolute URL so we extract current host, port, protocol
+ return getHost() + '/' + url;
+ }
+ else {
+ // web server can be deployed on subdomain so we need to use relative path
+ return url;
+ }
+}
+
export default {
reloadApp,
parseDate,
@@ -230,7 +244,6 @@ export default {
escapeHtml,
stopWatch,
formatLabel,
- getHost,
download,
toObject,
randomString,
@@ -245,5 +258,6 @@ export default {
getMimeTypeClass,
closeActiveDialog,
isHtmlEmpty,
- clearBrowserCache
+ clearBrowserCache,
+ getUrlForDownload
};
\ No newline at end of file
diff --git a/src/public/javascripts/setup.js b/src/public/javascripts/setup.js
index 45a633dc4..e7cf7c7e1 100644
--- a/src/public/javascripts/setup.js
+++ b/src/public/javascripts/setup.js
@@ -76,12 +76,12 @@ function SetupModel() {
}
// not using server.js because it loads too many dependencies
- $.post('/api/setup/new-document', {
+ $.post('api/setup/new-document', {
username: username,
password: password1,
theme: theme
}).then(() => {
- window.location.replace("/");
+ window.location.replace("./");
});
}
else if (this.setupType() === 'sync-from-server') {
@@ -128,10 +128,10 @@ function SetupModel() {
}
async function checkOutstandingSyncs() {
- const { stats, initialized } = await $.get('/api/sync/stats');
+ const { stats, initialized } = await $.get('api/sync/stats');
if (initialized) {
- window.location.replace("/");
+ window.location.replace("./");
}
const totalOutstandingSyncs = stats.outstandingPushes + stats.outstandingPulls;
diff --git a/src/views/setup.ejs b/src/views/setup.ejs
index 709bf618d..0a2454290 100644
--- a/src/views/setup.ejs
+++ b/src/views/setup.ejs
@@ -138,7 +138,6 @@