Files
gouki e0b447ddb1
Build and Publish Server / build (push) Successful in 1m21s
fix(admin): 修复后台前端 Vue/Inertia 加载失败导致白屏
- 原 unpkg 的 @inertiajs/vue3 UMD 路径 404,Inertia undefined
- 改用 import map + esm.sh ESM CDN(自动解析依赖树)
- vue 用含模板编译器的完整版 dist/vue.esm-browser.prod.js
- inertia 用 ?bundle&external=vue,保证与 import map 的 vue 单实例
- 解决 runtime-only vue 无法编译 template 字符串导致的白屏
2026-08-11 22:54:39 +00:00

48 lines
1.9 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ .title }} - 祈福小助手管理后台</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- Vue + Inertia 通过 import map 从 esm.sh 加载(ESM,自动解析依赖树,国内可访问) -->
<script type="importmap">
{
"imports": {
"vue": "https://esm.sh/vue@3.4.21/dist/vue.esm-browser.prod.js",
"@inertiajs/vue3": "https://esm.sh/@inertiajs/vue3@1.0.0?bundle&external=vue"
}
}
</script>
</head>
<body class="bg-gray-100">
<div id="app" data-page='{"component":"{{ .page }}","props":{},"url":"{{ .url }}","version":""}'></div>
<script type="module">
import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/vue3';
createInertiaApp({
resolve: name => {
const pages = {
login: () => import('/static/js/pages/Login.js'),
dashboard: () => import('/static/js/pages/Dashboard.js'),
users: () => import('/static/js/pages/Users.js'),
orders: () => import('/static/js/pages/Orders.js'),
wishes: () => import('/static/js/pages/Wishes.js'),
wiki: () => import('/static/js/pages/Wiki.js'),
settings: () => import('/static/js/pages/Settings.js'),
};
return pages[name] ? pages[name]() : pages.dashboard();
},
setup({ el, App, props, plugin }) {
createApp({ render: () => h(App, props) })
.use(plugin)
.mount(el);
},
});
</script>
</body>
</html>