fix: 改用 importmap + esm.sh 解决 CodeMirror 多实例冲突

- 将 import 改回 bare specifier,通过 importmap 指向 esm.sh
- esm.sh 在同一构建上下文中能识别共享依赖,确保 @codemirror/state 单例
- 消除 "Unrecognized extension value" instanceof 检查错误
This commit is contained in:
2026-05-27 19:48:01 +08:00
parent 799ac3c95c
commit c326cbc104
3 changed files with 34 additions and 24 deletions

View File

@ -10,14 +10,14 @@ func SecurityHeaders() gin.HandlerFunc {
return func(c *gin.Context) {
// Content-Security-Policy
// script-src: 本站 + esm.sh CDN (CodeMirror 6 ESM 模块)
// connect-src: 本站 (Markdown 预览等 fetch 请求)
// connect-src: 本站 + esm.sh (source map 请求)
// img-src: 本站 + data: URI (头像裁切) + blob: (粘贴图片)
c.Header("Content-Security-Policy",
"default-src 'self'; "+
"script-src 'self' 'unsafe-inline' https://esm.sh; "+
"style-src 'self' 'unsafe-inline'; "+
"img-src 'self' data: blob:; "+
"connect-src 'self'")
"connect-src 'self' https://esm.sh")
// 禁止 MIME 类型嗅探
c.Header("X-Content-Type-Options", "nosniff")