跳转到内容

常见问题

这通常是缺少 WebKit2GTK 依赖导致的。

Ubuntu 24.04:

Terminal window
sudo apt install libwebkit2gtk-4.1-0t64

Ubuntu 22.04:

Terminal window
sudo apt install libwebkit2gtk-4.0-37

macOS 提示”已损坏,无法打开”

Section titled “macOS 提示”已损坏,无法打开””

在终端中执行:

Terminal window
xattr -cr /Applications/Gridea\ Pro.app

然后重新打开应用。

点击”更多信息”,然后选择”仍要运行”。这是因为应用尚未进行 Windows 代码签名。

文章预览和实际部署效果不一致

Section titled “文章预览和实际部署效果不一致”

检查以下几点:

  1. 站点域名 (config.domain) 是否正确配置
  2. 静态资源路径是否使用了 assets/ 前缀(不应该使用,详见主题系统概述
  3. 是否有依赖绝对路径的资源链接

常见原因和解决方案:

错误信息原因解决方案
401 UnauthorizedToken 过期或无效重新生成 Token 并更新
403 ForbiddenToken 权限不足确保 Token 有 repo 权限
远程仓库不存在仓库地址写错核对仓库完整 URL
push rejected远程有未合并的变更手动解决冲突或强制推送
  • 确认图片已通过编辑器上传(而非仅插入外部链接)
  • 检查图片路径是否正确
  • 部署后检查图片文件是否存在于输出目录中

Jinja2: 最可能是变量名拼写错误。对照模板变量表逐字核对。

Go Templates: 变量名必须使用 PascalCase。.config.siteName 应为 .Config.SiteName

Jinja2 模板报 “filter not found” 错误

Section titled “Jinja2 模板报 “filter not found” 错误”

Pongo2 的过滤器参数使用冒号语法,不是括号:

{# 正确 #}
{{ value|default:"fallback" }}
{# 错误 -- 会报 filter 解析错误 #}
{{ value|default("fallback") }}

几乎所有 panic 都是因为访问了 nil 对象的字段。务必在访问嵌套字段前判空:

{{ if .Post }}{{ .Post.Title }}{{ end }}

post.date 已经是格式化后的字符串,不是 time.Time 对象。直接输出即可:

{# 正确 #}
{{ post.date }}
{# 错误 #}
{{ post.date|date:"2006-01-02" }}

只有 now 变量是 time.Time 对象,可以使用 |date 过滤器。

在 Jinja2 中输出 HTML/CSS/JS 内容时必须使用 |safe 过滤器:

{{ theme_config.customCss|safe }}
{{ theme_config.headerScript|safe }}

在 Go Templates 中使用 safeHTMLsafeCSS 函数。

如果使用 <用户名>.github.io/<仓库名>/ 形式的地址,需要确保站点域名配置中包含仓库名路径,或在模板中使用相对路径引用资源。

确认 Build Command 留空,Publish Directory 设置为 .(根目录),因为 Gridea Pro 已经生成了完整的静态文件。


如果以上内容未能解决你的问题,请在 GitHub Issues 中提交反馈。