diff --git a/demo/rollup.config.js b/demo/rollup.config.js
index c8a43fe5ff35a79fb82da3db940d17792938445f..2f09787a6f41d04d5f9269728fb27fb8ccd8c83e 100644
--- a/demo/rollup.config.js
+++ b/demo/rollup.config.js
@@ -253,14 +253,14 @@ Dependencies:
                 },
                 {src: 'node_modules/pdfjs-dist/cmaps/*', dest: 'dist/local/' + pkg.name + '/pdfjs'}, // do we want all map files?
                 {src: 'node_modules/source-sans-pro/WOFF2/OTF/*', dest: 'dist/local/' + pkg.name + '/fonts'},
-                {src: 'node_modules/dbp-common/src/spinner.js', dest: 'dist/local/' + pkg.name, rename: 'spinner.js'},
-                {src: 'node_modules/dbp-common/misc/browser-check.js', dest: 'dist/local/' + pkg.name, rename: 'browser-check.js'},
+                {src: 'node_modules/@dbp-toolkit/common/src/spinner.js', dest: 'dist/local/' + pkg.name, rename: 'spinner.js'},
+                {src: 'node_modules/@dbp-toolkit/common/misc/browser-check.js', dest: 'dist/local/' + pkg.name, rename: 'browser-check.js'},
                 {src: 'assets/icon-*.png', dest: 'dist/local/' + pkg.name},
                 {src: 'assets/*-placeholder.png', dest: 'dist/local/' + pkg.name},
                 {src: 'assets/manifest.json', dest: 'dist', rename: pkg.name + '.manifest.json'},
                 {src: 'assets/*.metadata.json', dest: 'dist'},
-                {src: 'node_modules/dbp-common/assets/icons/*.svg', dest: 'dist/local/dbp-common/icons'},
-                {src: 'node_modules/tabulator-tables/dist/css', dest: 'dist/local/dbp-file-source/tabulator-tables'},
+                {src: 'node_modules/@dbp-toolkit/common/assets/icons/*.svg', dest: 'dist/local/@dbp-toolkit/common/icons'},
+                {src: 'node_modules/tabulator-tables/dist/css', dest: 'dist/local/@dbp-toolkit/file-handling/tabulator-tables'},
                 {src: 'node_modules/qr-scanner/qr-scanner-worker.*', dest: 'dist/local/qr-code-scanner'},
             ],
         }),
diff --git a/packages/auth/src/dbp-auth-demo.js b/packages/auth/src/dbp-auth-demo.js
index 73abaaa55b8b6db72967feade7c9fe9d9fdd5c9e..3a2913df3f0e28efe2d065314f4cca25519a84b2 100644
--- a/packages/auth/src/dbp-auth-demo.js
+++ b/packages/auth/src/dbp-auth-demo.js
@@ -4,6 +4,7 @@ import {ScopedElementsMixin} from '@open-wc/scoped-elements';
 import {AuthKeycloak} from './auth-keycloak.js';
 import {LoginButton} from './login-button.js';
 import * as commonUtils from '@dbp-toolkit/common/utils';
+import {name as pkgName} from './../package.json';
 
 class AuthDemo extends ScopedElementsMixin(LitElement) {
     constructor() {
@@ -63,7 +64,7 @@ class AuthDemo extends ScopedElementsMixin(LitElement) {
     }
 
     render() {
-        const silentCheckSsoUri = commonUtils.getAssetURL('dbp-auth', 'silent-check-sso.html');
+        const silentCheckSsoUri = commonUtils.getAssetURL(pkgName, 'silent-check-sso.html');
         return html`
             <style>
                /* from BULMA.CSS */
diff --git a/packages/common/src/icon.js b/packages/common/src/icon.js
index beec496800f60337d7d2c0b9fc1f76084f66c309..a0d22df709393d9152672d406dd32597b562b8e6 100644
--- a/packages/common/src/icon.js
+++ b/packages/common/src/icon.js
@@ -2,6 +2,7 @@ import {html, LitElement, css} from 'lit-element';
 import {unsafeHTML} from 'lit-html/directives/unsafe-html.js';
 import {until} from 'lit-html/directives/until.js';
 import * as commonUtils from '../utils.js';
+import {name as pkgName} from './../package.json';
 
 // Use in case the icon fails to load
 const errorIcon = `
@@ -18,7 +19,7 @@ const errorIcon = `
 `;
 
 export function getIconSVGURL(name) {
-    return commonUtils.getAssetURL('dbp-common', 'icons/' + encodeURI(name) + '.svg');
+    return commonUtils.getAssetURL(pkgName, 'icons/' + encodeURI(name) + '.svg');
 }
 
 export function getIconCSS(name) {
diff --git a/packages/data-table-view/src/data-table-view.js b/packages/data-table-view/src/data-table-view.js
index 7a807b2ffa5de4ea0cb687d518f862a67f517cb2..565c38b8c567b0223333436a08c7526387c5c1a6 100644
--- a/packages/data-table-view/src/data-table-view.js
+++ b/packages/data-table-view/src/data-table-view.js
@@ -14,6 +14,7 @@ import en from '../assets/datatables/i18n/English';
 import {getIconSVGURL} from '@dbp-toolkit/common';
 import * as commonUtils from '@dbp-toolkit/common/utils';
 import * as commonStyles from '@dbp-toolkit/common/styles';
+import {name as pkgName} from './../package.json';
 
 dt(window, $);
 resp(window, $);
@@ -321,9 +322,9 @@ export class DataTableView extends LitElement {
     }
 
     render() {
-        let dt_css = commonUtils.getAssetURL('dbp-data-table-view', 'css/jquery.dataTables.min.css');
-        let rs_css = commonUtils.getAssetURL('dbp-data-table-view', 'css/responsive.dataTables.min.css');
-        let bt_css = commonUtils.getAssetURL('dbp-data-table-view', 'css/buttons.dataTables.min.css');
+        let dt_css = commonUtils.getAssetURL(pkgName, 'css/jquery.dataTables.min.css');
+        let rs_css = commonUtils.getAssetURL(pkgName, 'css/responsive.dataTables.min.css');
+        let bt_css = commonUtils.getAssetURL(pkgName, 'css/buttons.dataTables.min.css');
 
         return html`
             <link rel="stylesheet" href="${dt_css}">
diff --git a/packages/file-handling/rollup.config.js b/packages/file-handling/rollup.config.js
index 1b87055e97ee6c6b4a2a4cfdcafe826446a7e4a7..1c1ee906fd928b6dd10ffab589026084d3a9b6de 100644
--- a/packages/file-handling/rollup.config.js
+++ b/packages/file-handling/rollup.config.js
@@ -9,6 +9,7 @@ import consts from 'rollup-plugin-consts';
 import del from 'rollup-plugin-delete';
 import {getPackagePath} from '../../rollup.utils.js';
 
+const pkg = require('./package.json');
 const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local';
 console.log("build: " + build);
 
@@ -50,7 +51,7 @@ export default (async () => {
                     {src: 'assets/index.html', dest: 'dist'},
                     {src: 'assets/favicon.ico', dest: 'dist'},
                     {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'},
-                    {src: await getPackagePath('tabulator-tables', 'dist/css'), dest: 'dist/local/dbp-file-source/tabulator-tables'},
+                    {src: await getPackagePath('tabulator-tables', 'dist/css'), dest: 'dist/local/' + pkg.name + '/tabulator-tables'},
                 ],
             }),
             (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false
diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js
index 34afe0a8a1ff8f42f08baa844e70d84547e3c7a8..8f28a8a6c70015dea2e2e3c7590c28c535e58a35 100644
--- a/packages/file-handling/src/dbp-nextcloud-file-picker.js
+++ b/packages/file-handling/src/dbp-nextcloud-file-picker.js
@@ -11,6 +11,7 @@ import {humanFileSize} from '@dbp-toolkit/common/i18next';
 import Tabulator from 'tabulator-tables';
 import nextcloudFileURL from 'consts:nextcloudFileURL';
 import MicroModal from './micromodal.es';
+import {name as pkgName} from './../package.json';
 
 /**
  * NextcloudFilePicker web component
@@ -1422,7 +1423,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     }
 
     render() {
-        const tabulatorCss = commonUtils.getAssetURL('local/dbp-file-source/tabulator-tables/css/tabulator.min.css');
+        const tabulatorCss = commonUtils.getAssetURL(pkgName, 'tabulator-tables/css/tabulator.min.css');
 
         return html`
             <div class="wrapper">
diff --git a/rollup.utils.js b/rollup.utils.js
index 634b82d1898c8521001712ad7cede796651de7bf..b3b2aa19971c785df9080a46180460cc2ac2a7d5 100644
--- a/rollup.utils.js
+++ b/rollup.utils.js
@@ -21,8 +21,15 @@ export function getBuildInfo(build) {
 
 export async function getPackagePath(packageName, assetPath) {
     const r = resolve();
-    const id = (await r.resolveId(packageName)).id;
-    const packageInfo = r.getPackageInfoForId(id);
-    const fullAssetPath = path.join(packageInfo.root, assetPath);
-    return path.relative(process.cwd(), fullAssetPath);
+    const resolved = await r.resolveId(packageName);
+    let packageRoot;
+    if (resolved !== null) {
+        const id = (await r.resolveId(packageName)).id;
+        const packageInfo = r.getPackageInfoForId(id);
+        packageRoot = packageInfo.root;
+    } else {
+        // Non JS packages
+        packageRoot = path.dirname(require.resolve(packageName + '/package.json'));
+    }
+    return path.relative(process.cwd(), path.join(packageRoot, assetPath));
 }
\ No newline at end of file