diff --git a/resources/vue/components/courseware/CoursewareLinkBlock.vue b/resources/vue/components/courseware/CoursewareLinkBlock.vue
index 02922d3eadd38647c53823b050c5d13e0fa82b3f..c20ef10c5f7bab608f55ff0dc7907bba7aea0215 100755
--- a/resources/vue/components/courseware/CoursewareLinkBlock.vue
+++ b/resources/vue/components/courseware/CoursewareLinkBlock.vue
@@ -17,7 +17,7 @@
                     </a>
                 </div>
                 <div v-if="currentType === 'internal'">
-                    <router-link :to="'/structural_element/' + currentTarget">
+                    <router-link :to="{ name: 'CoursewareStructuralElement', params: { id: currentTarget } }">
                         <div class="cw-link internal">
                             <span class="cw-link-title">
                                 {{ currentTitle }}
diff --git a/resources/vue/courseware-index-app.js b/resources/vue/courseware-index-app.js
index e4552a1f0bb0614755f79cef6ae1e69545f479c8..a72437970a34147767a6e2e537784c487f8dd65e 100755
--- a/resources/vue/courseware-index-app.js
+++ b/resources/vue/courseware-index-app.js
@@ -71,7 +71,14 @@ const mountApp = (STUDIP, createApp, element) => {
         },
     ];
 
-    const base = `${STUDIP.ABSOLUTE_URI_STUDIP}dispatch.php/course/courseware/?cid=${STUDIP.URLHelper.parameters.cid}`;
+    let pathname = new URL(STUDIP.ABSOLUTE_URI_STUDIP).pathname;
+    if (pathname.endsWith('/')) {
+        pathname = pathname + '/';
+    }
+    const base = STUDIP.URLHelper.parameters.cid
+          ? `${pathname}dispatch.php/course/courseware/?cid=${STUDIP.URLHelper.parameters.cid}`
+          : `${pathname}dispatch.php/contents/courseware/courseware`;
+
     const router = new VueRouter({
         base,
         routes,