Vue Submodule Integration in Frappe App – Assets Not Loading After Adding Submodule

Hi all,

I’m working on a custom Frappe app called myapp which includes a Vue.js dashboard. Initially, the dashboard was part of the app folder and everything worked fine — the app served the dashboard at /dashboard and all JS/CSS assets loaded correctly.

However, I recently separated the dashboard into a remote Git submodule and added it to my app. After this change:

  • The dashboard still builds successfully using Vite.

  • The dashboard.html is copied to the Frappe www folder.

  • But when I access http://<site>/dashboard, the page loads blank.

  • Browser console shows MIME type errors for JS/CSS assets (they return HTML instead of JS/CSS).

  • Routing seems to redirect immediately to /desk

How can I properly integrate a Vue submodule in a Frappe app so that:

  1. The dashboard serves correctly at /dashboard

  2. All JS/CSS assets are loaded without MIME type errors

  3. Vue routing works (no automatic redirect to /desk)

Any guidance or working example of including a Vue submodule in a Frappe app would be highly appreciated.

Are the built assets in your apps public folder? Regarding routing in your app hooks.py you need to add a website route rule.

I have already added:
website_route_rules = [{'from_route': '/dashboard/<path:app_path>', 'to_route': 'dashboard'},]