diff --git a/qe.ipynb b/qe.ipynb
index 269e49674..6e47fbb4a 100644
--- a/qe.ipynb
+++ b/qe.ipynb
@@ -49,7 +49,9 @@
     "from IPython.display import display\n",
     "from jinja2 import Environment\n",
     "\n",
-    "from aiidalab_qe.app import App, static\n",
+    "from aiidalab_qe.app import App\n",
+    "from aiidalab_qe.app.static import templates, styles\n",
+    "\n",
     "from aiidalab_qe.version import __version__"
    ]
   },
@@ -61,8 +63,8 @@
    "source": [
     "env = Environment()\n",
     "\n",
-    "template = files(static).joinpath(\"welcome.jinja\").read_text()\n",
-    "style = files(static).joinpath(\"style.css\").read_text()\n",
+    "template = files(templates).joinpath(\"welcome.jinja\").read_text()\n",
+    "style = files(styles).joinpath(\"style.css\").read_text()\n",
     "welcome_message = ipw.HTML(env.from_string(template).render(style=style))\n",
     "current_year = datetime.now().year\n",
     "footer = ipw.HTML(\n",
diff --git a/src/aiidalab_qe/app/result/summary_viewer.py b/src/aiidalab_qe/app/result/summary_viewer.py
index 0bc1b728a..cff4715c8 100644
--- a/src/aiidalab_qe/app/result/summary_viewer.py
+++ b/src/aiidalab_qe/app/result/summary_viewer.py
@@ -153,11 +153,11 @@ def _generate_report_html(report):
     """Read from the bulider parameters and generate a html for reporting
     the inputs for the `QeAppWorkChain`.
     """
-    from importlib import resources
+    from importlib.resources import files
 
     from jinja2 import Environment
 
-    from aiidalab_qe.app import static
+    from aiidalab_qe.app.static import styles, templates
 
     def _fmt_yes_no(truthy):
         return "Yes" if truthy else "No"
@@ -168,8 +168,8 @@ def _fmt_yes_no(truthy):
             "fmt_yes_no": _fmt_yes_no,
         }
     )
-    template = resources.read_text(static, "workflow_summary.jinja")
-    style = resources.read_text(static, "style.css")
+    template = files(templates).joinpath("workflow_summary.jinja").read_text()
+    style = files(styles).joinpath("style.css").read_text()
     report = {key: value for key, value in report.items() if value is not None}
 
     return env.from_string(template).render(style=style, **report)
diff --git a/src/aiidalab_qe/app/result/workchain_viewer.py b/src/aiidalab_qe/app/result/workchain_viewer.py
index b90d76586..a56e4f9ea 100644
--- a/src/aiidalab_qe/app/result/workchain_viewer.py
+++ b/src/aiidalab_qe/app/result/workchain_viewer.py
@@ -1,6 +1,6 @@
 import shutil
 import typing as t
-from importlib import resources
+from importlib.resources import files
 from pathlib import Path
 from tempfile import TemporaryDirectory
 
@@ -16,7 +16,7 @@
 from IPython.display import HTML, display
 from jinja2 import Environment
 
-from aiidalab_qe.app import static
+from aiidalab_qe.app.static import styles, templates
 from aiidalab_qe.app.utils import get_entry_items
 
 from .summary_viewer import SummaryView
@@ -173,8 +173,8 @@ def __init__(self, node, export_dir=None, **kwargs):
             )
             final_calcjob = self._get_final_calcjob(node)
             env = Environment()
-            template = resources.read_text(static, "workflow_failure.jinja")
-            style = resources.read_text(static, "style.css")
+            template = files(templates).joinpath("workflow_failure.jinja").read_text()
+            style = files(styles).joinpath("style.css").read_text()
             output = ipw.HTML(
                 env.from_string(template).render(
                     style=style,
diff --git a/src/aiidalab_qe/app/static/__init__.py b/src/aiidalab_qe/app/static/styles/__init__.py
similarity index 100%
rename from src/aiidalab_qe/app/static/__init__.py
rename to src/aiidalab_qe/app/static/styles/__init__.py
diff --git a/src/aiidalab_qe/app/static/style.css b/src/aiidalab_qe/app/static/styles/style.css
similarity index 100%
rename from src/aiidalab_qe/app/static/style.css
rename to src/aiidalab_qe/app/static/styles/style.css
diff --git a/src/aiidalab_qe/app/static/templates/__init__.py b/src/aiidalab_qe/app/static/templates/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/aiidalab_qe/app/static/welcome.jinja b/src/aiidalab_qe/app/static/templates/welcome.jinja
similarity index 100%
rename from src/aiidalab_qe/app/static/welcome.jinja
rename to src/aiidalab_qe/app/static/templates/welcome.jinja
diff --git a/src/aiidalab_qe/app/static/workflow_failure.jinja b/src/aiidalab_qe/app/static/templates/workflow_failure.jinja
similarity index 100%
rename from src/aiidalab_qe/app/static/workflow_failure.jinja
rename to src/aiidalab_qe/app/static/templates/workflow_failure.jinja
diff --git a/src/aiidalab_qe/app/static/workflow_summary.jinja b/src/aiidalab_qe/app/static/templates/workflow_summary.jinja
similarity index 100%
rename from src/aiidalab_qe/app/static/workflow_summary.jinja
rename to src/aiidalab_qe/app/static/templates/workflow_summary.jinja