玩命加载中 . . .

Twikoo评论系统从Vercel迁移到Render


背景

之前博客的 Twikoo 评论系统部署在 Vercel 上,但由于 Vercel 的 *.vercel.app 域名在国内被墙,导致国内访客无法加载评论模块。经过调研,决定将 Twikoo 后端迁移到 Render 平台,并将前端 JS CDN 切换为国内可用的 baomitu.com。

问题分析

原来的配置:

  • Twikoo 后端https://twikoo100-tiandoo.vercel.app(Vercel,国内不可访问)
  • Twikoo JShttps://cdn.jsdelivr.net/npm/twikoo/dist/twikoo.all.min.js(jsdelivr,国内较慢)

参考了 80tz.cn 的做法:

  • 后端使用自建域名,国内可访问
  • JS 库使用 lib.baomitu.com(360 CDN,国内速度快)

解决方案

1. Fork Twikoo 官方仓库

twikoojs/twikoo-zeabur fork 到自己的 GitHub 账号下。

2. 添加 Render Blueprint

在 fork 的仓库中添加 render.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
services:
- type: web
name: twikoo
runtime: node
plan: free
buildCommand: npm install
startCommand: npx tkserver
envVars:
- key: MONGODB_URL
fromDatabase:
name: twikoo-mongo
property: connectionString
- key: TWIKOO_IP_ENABLED
value: "true"

databases:
- name: twikoo-mongo
plan: free
ipAllowList: []

3. 一键部署

访问以下链接,一键部署到 Render:

1
https://render.com/deploy?repo=https://github.com/500fan/twikoo-zeabur

Render 会自动创建 MongoDB 数据库和 Twikoo Web Service,免费计划即可。

4. 获取域名

部署完成后,在 Render 的 Settings → Networking 中会得到一个类似 https://twikoo-xxx.onrender.com 的域名。

5. 更新 Hexo 配置

修改 themes/hexo-theme-matery/_config.yml

1
2
3
4
5
6
7
# Twikoo 评论模块
twikoo:
enable: true
envId: https://twikoo-ydp0.onrender.com # 新的 Render 域名

# JS CDN 替换为国内源
twikoo: https://lib.baomitu.com/twikoo/1.6.16/twikoo.all.min.js

6. 重新部署博客

1
hexo clean && hexo g && hexo d

对比总结

项目 迁移前 (Vercel) 迁移后 (Render)
后端域名 *.vercel.app(被墙) *.onrender.com(国内可访问)
JS CDN jsdelivr(国内慢) baomitu.com(360 CDN,快)
数据库 Vercel KV Render MongoDB
费用 免费 免费
冷启动 首次约 30-50 秒唤醒

注意事项

Discussions

Twikoo 评论管理密码1234

博客twikoo评论环境变量

https://vercel.com/5fans-projects/eric/settings/environment-variables
指向
https://cloud.mongodb.com/v2/60d13fbff12bbf147f289d49#/explorer/69e4620590d21e00b187510d/test/comment/find 留言数据储存在这里了
twikoo项目git仓库在https://github.com/500fan/eric

因为之前的留言存在 LokiJS(文件数据库) 里,不是 MongoDB。切换到 Atlas MongoDB
后,旧数据没有迁移过来,所以历史留言丢失了。

旧的留言数据在 Render
服务的文件系统里(/opt/render/project/src/data/db.json),但 Render
免费版重启后文件可能被清除。

现在的情况:

  • 旧留言(”在吗”)— 已丢失,无法恢复
  • 新留言 — 会正常保存到 Atlas MongoDB,不会丢失

清楚了!80tz.cn 能在国内用的原因:

1. Twikoo JS 库 — 用的是 lib.baomitu.com(360 CDN,国内快)
你可能用的是 unpkg 或 cdnjs,国内慢或被墙

2. Twikoo 后端 — 用的是自己的域名 https://www.tw.80tz.cn
你用的是 https://twikoo100-tiandoo.vercel.app(Vercel 域名被墙)

解决思路:

  1. 把 Twikoo 后端从 Vercel 迁到 Zeabur(国内直连)
  2. JS 库换成 baomitu.com 的

你要我帮你操作吗?需要:

  • 在 Zeabur 上部署 Twikoo 后端
  • 把 Vercel 的 Twikoo 数据迁移过去
  • 更新你 hexo 配置里的 envId

❯ 现在去 Zeabur 部署。先打开 Zeabur:https://zeabur.com/login
GitHub500fan登陆,邮箱392637221@qq.com
需要购买

帮你在 Render 上部署 Twikoo。先看看 Twikoo 自部署的架构:

render.yaml` 已经推在哪个的仓库
在你 GitHub 的 fork 仓库里:

1
https://github.com/500fan/twikoo-zeabur

就是刚才从 twikoojs/twikoo-zeabur fork 过来的那个。render.yaml 已经推到 main 分支了。
https://dashboard.render.com/blueprint/exs-d7st1u77f7vs739hudeg/sync/exe-d7st1uf7f7vs739hudm0

Create database twikoo-mongo
https://dashboard.render.com/blueprint/exs-d7st1u77f7vs739hudeg/sync/exe-d7st1uf7f7vs739hudm0
https://dashboard.render.com/web/srv-d7st3dm7r5hc738jd37g

全部完成!

GitHub 部署成功 ✅ — 配置已更新并推送到 500fan.github.io

更新内容:

  • envId: twikoo100-tiandoo.vercel.apptwikoo-ydp0.onrender.com
  • JS CDN: cdn.jsdelivr.netlib.baomitu.com(360 国内 CDN)

✅ 完成的工作

1. Twikoo 后端部署到 Render

  • 仓库:github.com/500fan/twikoo-zeabur(已 fork 并添加 render.yaml
  • 域名:https://twikoo-ydp0.onrender.com

2. Hexo 配置更新(8video,music box,by Render 项目)

文件/Users/apple/Downloads/blog/8video,music box,by Render/themes/hexo-theme-matery/_config.yml

Twikoo的评论数据在哪里保存?

────────────────────────────────────────

╭─ ⚕ Hermes ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
保存在 Render 的 MongoDB 数据库里。

当时创建的 render.yaml 里配了:

1
2
3
4
5
6
7
8
9
databases:
- name: twikoo-mongo
plan: free

envVars:
- key: MONGODB_URL
fromDatabase:
name: twikoo-mongo
property: connectionString

所以评论数据在 Render 平台的免费 MongoDB 中。

⚠️ 注意:Render 免费版数据库有 30天自动删除 的风险(闲置太久会被清理)。建议:

  1. 定期去 Render Dashboard 看一眼数据库状态
  2. 或者用 MongoDB Atlas(免费 512MB,不会自动删)

需要我帮你换成 MongoDB Atlas 吗?

问题找到了!

Render 创建的是 PostgreSQL(不是 MongoDB),但 Twikoo 需要 MongoDB

Render 免费版不提供 MongoDB。你有两个选择:

方案 1:MongoDB Atlas(推荐)

  • 免费 512MB,不会过期
  • 需要你去 https://www.mongodb.com/atlas 注册账号
  • 注册后创建免费集群,拿到连接字符串
  • 然后在 Render 的 twikoo 服务 → Environment 里把 MONGODB_URL 改成 Atlas 的连接字符串

方案 2:回到 Zeabur

  • Zeabur 原生支持 MongoDB
  • 但需要付费

你要走哪个方案?如果选 Atlas,你先去注册,我帮你配置。
mongodb+srv://eric:t0000062516@cluster0.i1u0cfo.mongodb.net/?appName=Cluster0t


好的!连接字符串在 MongoDB Atlas 控制台获取,步骤如下:

  1. 打开 https://cloud.mongodb.com/
  2. 登录后,进入你的项目
  3. 点击左侧菜单 Database(或 Clusters)
  4. 你会看到你的集群,点击 Connect 按钮
  5. 选择 Drivers(或 Connect your application)
  6. 就能看到连接字符串,类似:
    1
    mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority

你需要把 <username><password> 替换成你创建数据库用户时设置的用户名和密码。
mongodb+srv://eric:t0000062516@cluster0.i1u0cfo.mongodb.net/twikoo?appName=Cluster0t

mongodb+srv://eric:@cluster0.i1u0cfo.mongodb.net/

mongodb+srv://eric:@cluster0.i1u0cfo.mongodb.net/?appName=Cluster0

mongodb+srv://eric:t0000062516@cluster0.i1u0cfo.mongodb.net/?appName=Cluster0

mongodb+srv://eric:@cluster0.i1u0cfo.mongodb.net/?appName=Cluster0

mongodb+srv://eric:Tt0000062516@cluster0.i1u0cfo.mongodb.net/?appName=Cluster0

mongodb+srv://eric:t0000062516@cluster0.i1u0cfo.mongodb.net/

在你的 Mac 终端运行这个命令(替换密码):

mongosh “mongodb+srv://eric:Tt0000062516@cluster0.i1u0cfo.mongodb.net/twikoo”
–eval “db.comment.find().toArray()”

如果没装 mongosh:

brew install mongosh

这个命令会直接连接 Atlas 的 twikoo 数据库,看有没有数据。如果返回空数组 [],说明
Atlas 连接正常但没有数据写入,问题在 tkserver 那边。

你先试试?

然后
你可以自己在 Render 上配置,步骤很简单:

  1. 打开 https://dashboard.render.com/
  2. 找到你的 Twikoo 服务(twikoo-ydp0.onrender.com)
  3. 点击 Environment 标签
  4. 添加一个环境变量:
    • Key: MONGODB_URL
    • Value: mongodb+srv://eric:t0000062516@cluster0.i1u0cfo.mongodb.net/twikoo?appName=Cluster0t
  5. 点击 Save Changes,服务会自动重启

对,点击齿轮图标后:

  1. 首次登录会让你创建管理员密码(不是账号名,Twikoo 只用密码)
  2. 输入一个密码,点”登录”
  3. 以后再点齿轮图标,输入这个密码就能进入管理后台

管理后台可以:

  • 审核/删除评论
  • 置顶评论
  • 设置黑名单
  • 查看所有页面的评论

你先去试试,有问题告诉我。

1234

Render 免费版会休眠,需要等一会儿唤醒,那么唤醒的方式有哪些
────────────────────────────────────────

services:

  • type: web
    name: twikoo
    runtime: node
    plan: free
    buildCommand: npm install
    startCommand: npx tkserver
    envVars:
    • key: MONGODB_URL
      fromDatabase:
      name: twikoo-mongo
      property: connectionString
    • key: TWIKOO_IP_ENABLED
      value: “true”

databases:

  • name: twikoo-mongo
    plan: free
    ipAllowList: []

改为:
services:
- type: web
name: twikoo
runtime: node
plan: free
buildCommand: npm install
startCommand: npx tkserver
envVars:
- key: MONGODB_URL
sync: false
- key: TWIKOO_IP_ENABLED
value: “true”

再改

services:
- type: web
name: twikoo
runtime: node
plan: free
buildCommand: npm install
startCommand: npx tkserver
envVars:
- key: MONGO_URI
sync: false
- key: TWIKOO_IP_ENABLED
value: “true”

在GitHub仓库改这个mongodb数据库可以了

services:
- type: web
name: twikoo
runtime: node
plan: free
buildCommand: npm install
startCommand: npx tkserver
envVars:
- key: MONGODB_URI
sync: false
- key: TWIKOO_IP_ENABLED
value: “true”

结束
成功了!日志显示 Twikoo is using mongo database。

现在去博客发一条测试评论,然后去 Atlas → Browse Collections 刷新,应该能看到
twikoo 数据库了。
历史留言不显示是因为数据库切换了:

  • 之前:留言存在 LokiJS(Render 容器内的文件)
  • 现在:切换到了 MongoDB Atlas(空数据库)
  • 旧数据没有迁移,所以历史留言消失了

验证方法: 去博客发一条新留言,刷新页面看看是否正常显示。如果新留言能显示,说明
Atlas 连接正常,只是历史数据丢了。

Update博客根目录,涉及Twikoo 留言板(_config.yml)
⎿ Added 1 line, removed 1 line
13
14 # URL
15 ## Set your site url here. For example, if you use GitHub Page, se
t url as ‘https://username.github.io/project'
16 -url: http://fuliefu.gitlab.io
16 +url: https://fuliefu-e0f643.gitlab.io
17
18
19 permalink: :year/:month/:day/:title/

你的博客地址有两个不同的域名:

这是两个不同的域名,Twikoo 按 URL 存储评论,所以旧评论不会在新域名上显示。

验证方法: 在当前博客(fuliefu.gitlab.io)发一条新评论,看看是否正常显示。如果新
评论能显示,说明 Twikoo 工作正常,只是域名变了导致历史评论不显示。

https://fuliefu-e0f643.gitlab.io/text/

问题可能是旧的 twikoo-mongo 数据库还在注入环境变量,覆盖了你的设置。

删除旧数据库:

  1. Render → 点进 twikoo-mongo 数据库
  2. 滚动到底部 → Delete Database
  3. 确认删除

然后去 twikoo 服务 → Manual Deploy → Deploy latest commit

部署完成后再发测试评论,检查 Atlas。

https://github.com/500fan/twikoo-zeabur/blob/main/render.yaml
https://dashboard.render.com/web/srv-d7st3dm7r5hc738jd37g/deploys/dep-d837jrugvqtc73eltdgg

还是 LokiJS。让我查一下 tkserver 到底用什么环境变量名。

找到问题了!启动日志显示:

Twikoo: Twikoo is using loki database

Twikoo 用的是 LokiJS(内存数据库),根本没连 MongoDB! 所以数据不会写入 Atlas。

可能是环境变量名不对。试试把 Render 里的 MONGODB_URL 改成 MONGO_URI:

  1. Render → Environment
  2. 把 Key 从 MONGODB_URL 改成 MONGO_URI
  3. Value
    不变:mongodb+srv://eric:Tt0000062516@cluster0.i1u0cfo.mongodb.net/twikoo
  4. 保存,等重新部署

部署后看启动日志,应该会变成 Twikoo is using mongodb database。

╭─ ⚕ Hermes ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
Render 免费版休眠唤醒方式:

  1. 自然唤醒 - 用户访问网站,等待 30-60 秒自动唤醒

  2. 定时 ping(推荐) - 用 cron job 定期访问,防止休眠

  3. 自己手动访问 - 浏览器打开 Render 后端 URL

  4. Render 付费版 - $7/月,不会休眠


最简单的方案:用 UptimeRobot 每 5 分钟 ping 一次,基本就不会休眠了。

要我帮你设置 UptimeRobot 吗?

你需要手动注册:

  1. 打开 https://uptimerobot.com/
  2. 点击 “Get started free”
  3. 用GitHub,500fan注册
    eric
    392637221@qq.com
  4. 密码:t0000062516(我设置的,你可以改)

注册完成后告诉我,我帮你添加监控。
好的!现在添加监控:

  1. 点击 “Add new monitor”“+ New Monitor”
  2. 设置:
    • Monitor Type: HTTP(s)
    • Friendly Name: Twikoo Backend
    • URL: https://twikoo-ydp0.onrender.com
    • Monitoring Interval: 5 minutes
  3. 点击 “Create”

完成后告诉我,我帮你验证监控是否正常工作。

如果 free 计划真的不可选,还有其他免费替代方案:

你先试试 UptimeRobot,不行告诉我换别的。

怎样定时 ping**- 用 cron job 定期访问,防止休眠

怎样自己手动访问** - 浏览器打开 Render 后端 URL,具体地址是什么
手动访问地址:

1
https://twikoo-ydp0.onrender.com

浏览器打开这个地址,等页面返回 JSON 就说明唤醒成功了。


Cron Job 方式:

在你本地 Mac 上设置定时任务,每 5 分钟 curl 一次:

1
2
3
4
5
# 编辑 crontab
crontab -e

# 添加这行(每 5 分钟 ping 一次)
*/5 * * * * /usr/bin/curl -s -o /dev/null https://twikoo-ydp0.onrender.com/

保存后就生效了。


总结:

valine是使用的免费的leancloud开发版资源,有什么可以替换leancloud吗

valine是使用的免费的leancloud开发版资源,有什么可以替换leancloud吗

⏺ LeanCloud 国际版近两年限制越来越多(国内版还要实名+备案域名),确实该换。下面是几个常见替代方案,按”和你当前栈最契合”排序:

  1. Twikoo ⭐ (你刚加的,最契合)
  • 后端:MongoDB Atlas 免费版(512MB)/ Vercel / Render
  • 优点:你已经部署在 Render 上了,配置最简单;UI 和 Valine 几乎一样;自带管理面板
  • 缺点:Render 免费版会休眠,首次加载评论会慢 30 秒左右
  • 建议:直接用这个,把 valine 关掉即可
  1. Waline(Valine 的官方继任者)
  • 后端:可选 LeanCloud / MySQL / PostgreSQL / SQLite / MongoDB / Deta / GitHub / Cloudflare KV 等十多种
  • 优点:API 和 Valine 兼容、支持邮件通知、阅读量统计、表情包、Markdown
  • 典型免费部署:Vercel + Vercel Postgres / Cloudflare Pages + D1
  • 官网:https://waline.js.org/
  1. Giscus(基于 GitHub Discussions)⭐ 推荐给静态博客
  • 后端:GitHub Discussions(完全免费、无限期)
  • 优点:零运维、永不休眠、数据归你;GitHub 账号登录
  • 缺点:评论者必须有 GitHub 账号
  • 官网:https://giscus.app/zh-CN
  1. Artalk
  • 后端:自托管(Go 单文件 + SQLite)
  • 优点:超轻量,一个二进制文件搞定,可以放在你 Render 同一个实例
  • 缺点:需要自己部署,Render 休眠问题同上
  1. Cusdis
  • 后端:Vercel + 任意 Postgres(Supabase / Neon 都有免费层)
  • 优点:极简、隐私友好、支持 Webhook 通知
  • 缺点:功能比 Twikoo/Waline 少

我的建议

┌───────────────────────────┬───────────────────────────────────────────────────────────┐
│ 场景 │ 推荐 │
├───────────────────────────┼───────────────────────────────────────────────────────────┤
│ 你已经在用 Render │ 继续用 Twikoo(最省事) │
├───────────────────────────┼───────────────────────────────────────────────────────────┤
│ 不想再用 Render(嫌休眠) │ Giscus(零运维)或 Waline + Vercel + Neon(免费且不休眠) │
├───────────────────────────┼───────────────────────────────────────────────────────────┤
│ 想要 Valine 的完全替代品 │ Waline │
└───────────────────────────┴───────────────────────────────────────────────────────────┘

如果嫌 Render 休眠烦人,最佳搭配是 Waline + Vercel + Neon Postgres——三者都有永久免费额度且不休眠。要我帮你写 Waline 的迁移配置(替换刚才那段 Twikoo
代码)吗?

✻ Sautéed for 31s

❯ valine,+ Vercel + Neon Postgres,国内可以访问吗

⏺ 老实说:不太理想,国内访问会有问题。 让我把每一层拆开讲:

三个组件的国内访问情况

┌──────────────────────────────────┬────────────────┬─────────────────────────────────────────────────────────────────┐
│ 组件 │ 国内访问 │ 说明 │
├──────────────────────────────────┼────────────────┼─────────────────────────────────────────────────────────────────┤
│ Neon Postgres │ ✅ 不影响 │ 数据库只被 Vercel 后端访问,用户不直接连,所以位置不重要 │
├──────────────────────────────────┼────────────────┼─────────────────────────────────────────────────────────────────┤
│ *Vercel(默认 .vercel.app 域名) │ ❌ 被墙/不稳定 │ 自 2022 年起 *.vercel.app 在国内大部分地区无法访问 │
├──────────────────────────────────┼────────────────┼─────────────────────────────────────────────────────────────────┤
│ Vercel(自定义域名) │ ⚠️ 不稳定 │ 走 Vercel 全球 CDN,国内常被 DNS 污染或限速;偶尔能通,但延迟高 │
├──────────────────────────────────┼────────────────┼─────────────────────────────────────────────────────────────────┤
│ Waline 前端 JS(jsDelivr/unpkg) │ ⚠️ 不稳定 │ jsDelivr 在国内已多次被墙,目前时通时断 │
└──────────────────────────────────┴────────────────┴─────────────────────────────────────────────────────────────────┘

结论:纯 Vercel + Neon 方案在国内评论框可能加载不出来,或者很慢。海外用户没问题。


国内可访问的替代方案

方案 A:Waline + 国内服务器(最稳,但要钱)

方案 B:Waline + Cloudflare Pages + D1(免费,但也被墙)

  • 和 Vercel 一样的问题,Cloudflare 在国内也越来越不稳定

方案 C:Twikoo + 腾讯云 CloudBase(国内免费方案)⭐

  • 腾讯云 CloudBase 有永久免费额度

  • 国内访问速度极快

  • Twikoo 官方支持 CloudBase 后端

  • 缺点:需要腾讯云账号 + 实名认证

方案 D:Giscus(GitHub Discussions)

  • GitHub 国内访问也时好时坏,但比 Vercel 稳一些
  • 评论数据托管在 GitHub,不会因 Vercel 被墙丢失
  • 静态资源走 jsdelivr,同样有不稳定问题

方案 E:Artalk 自部署(最自由)

  • 单个 Go 二进制文件 + SQLite
  • 部署到国内任意 VPS(备案后体验最好)

我的实际建议

你目前的栈(Render + Twikoo),如果你的读者主要在国内:

  1. 短期:保留 Twikoo,但把它从 Render 迁到腾讯云 CloudBase(免费 + 国内秒开),代码几乎不用改,只换 envId
  2. 长期:买个国内轻量服务器 + 备案域名,自部署 Waline 或 Artalk

如果你的读者主要在海外:Render 上的 Twikoo 就够用了,Waline + Vercel + Neon 也完全可以。

需要我帮你写 Twikoo 迁移到腾讯云 CloudBase 的步骤吗?

✻ Cooked for 35s

❯ 添加方案 D:Giscus(GitHub Discussions)

这个
│ │
│ [复制] 按钮 │
└─────────────────────────────────┘

已替换好 ✅ 三个真实值都填进去了:

data-repo=”500fan/Giscusliuyan”
data-repo-id=”R_kgDOSVH3MA”
data-category=”General”
data-category-id=”DIC_kwDOSVH3MM4C8ZLZ”

🚀 现在可以测试了

Giscus 的工作原理:

  1. 配置(已完成)
  • 基于你的 GitHub 仓库 500fan/Giscusliuyan 的 Discussions 功能
  • data-category=”General” → 评论存在该仓库的 General 分类下
  • data-mapping=”pathname” → 按页面路径匹配讨论帖
  1. 工作流程
    用户访问页面 → Giscus 脚本加载 → 根据当前 URL 路径查找 GitHub Discussions
    中对应的帖子 → 显示评论
    用户提交评论 → 直接写入 GitHub Discussions(需要 GitHub 登录授权)

  2. 需要的操作

  • 在 GitHub 仓库 500fan/Giscusliuyan 中开启 Discussions 功能
  • 去 giscus.app 生成配置(你已经生成了)
  • 嵌入到页面中(你已经做了)
  1. 本质
    Giscus 就是把 GitHub Discussions 当评论数据库,前端通过 GitHub API
    读写。用户发评论需要 GitHub 账号登录。和你用 Twikoo 做弹幕类似,只是后端从 Render
    换成了 GitHub Discussions。

执行 Hexo 三连命令重新生成并预览:

hexo clean && hexo g && hexo s

然后浏览器打开 http://localhost:4000/text/ 应该能看到:

  • 上面:Twikoo 评论框
  • 下面:Giscus 评论框(首次加载稍慢,会跳出 GitHub 登录按钮)

⚠️ 一个小差异提示

你从 giscus.app 复制的脚本里有 data-input-position=”bottom”(输入框在评论列表下方),而我之前给你的代码里写的是 top(输入框在上方)。

┌────────┬──────────────────────────────────────────────┐
│ 选项 │ 效果 │
├────────┼──────────────────────────────────────────────┤
│ top │ 输入框在最上面,访客一打开就能写评论 ⭐ 推荐 │
├────────┼──────────────────────────────────────────────┤
│ bottom │ 看完所有评论后才能写,类似传统论坛 │
└────────┴──────────────────────────────────────────────┘

需要我把它也改成 bottom(和你 giscus.app 选的一致)吗?还是保持 top(更友好)?


🧪 测试用 GitHub 账号登录评论一条试试

部署后试着用 GitHub 账号登录评论一条,然后去 https://github.com/500fan/Giscusliuyan/discussions 看看,应该会自动出现一个对应当前页面 pathname 的
Discussion,里面就是那条评论。

✻ Crunched for 34s

_图片上传失败: 博主未配置图床服务_,留言板无法上传图片

⏺ 这是 Twikoo 的图床配置问题。在 Twikoo 管理面板里设置:

  1. 打开你的博客,进入 Twikoo 管理面板
  2. 找到 图片上传 或 IMAGE 相关配置
  3. 选择一个图床服务

推荐用 SM.MS(免费,无需注册):

  1. 去 sm.ms 注册账号 https://s.ee/zh-CN/
    392637221@qq.com
    Tt0000062516@

  2. 获取 API Token(Dashboard → API Token)

  3. 在 Twikoo 管理面板里填入:
    - 图床服务:smms
    - Token:你的 SM.MS API Token

或者用 GitHub 图床(免费):

  1. 创建一个 GitHub 仓库专门存图片
  2. 生成 Personal Access Token
  3. 在 Twikoo 里配置 GitHub 图床信息

你用哪种方式?
https://github.com/settings/tokens Giscus 评论区

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是Personal access tokens (classic)twikoo-img — repo

twikoo-img — repo图床,https://7bu.top/register 注册

用户名
eric
姓名
er
392637221@qq.com密码t0000062516

你先打开 PicList 地址看看能不能访问?

https://piclist-f85t.onrender.com/ 可以打开登陆吗

换成
https://github.com/500fan/PicList
⏺ 你自己在浏览器打开 https://piclist-f85t.onrender.com/ 试试看。

如果显示空白页面或 API 响应,说明它是纯 API 服务,没有网页界面。

这种情况下,Token 需要在 Render 的 Environment Variables 里设置:

  1. Render → PicList 服务 → Environment
  2. 添加环境变量:
    - Key:SERVER_TOKEN
    - Value:自定义一个密码,比如 abc123
  3. 保存,等重新部署

然后在 Twikoo 管理面板设置:

你先打开看看显示什么?
你 fork 的是 PicList 桌面版,不能在 Render 运行。需要用
piclist-server(服务端版本):

https://piclist.cn/ 是否有 piclist-server(服务端版本)

确认了,PicList 只有桌面版,没有服务端版本可以部署到 Render。

PicList 不能用在 Twikoo 图床。 Twikoo 的 piclist 选项需要一个可部署的 API
服务端,但 PicList 没有提供。

你有两个选择:

  1. 用 7bu 或 smms(最简单,注册就能用)
  2. 自建兰空图床 (lskypro) 或 简单图床 (easyimage)(需要自己的服务器,PHP 环境)

建议直接用 7bu,不用折腾了。要去注册吗?


Author: 500饭
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source 500饭 !
留言互动
Powered by Twikoo
评论互动
- 条评论
 Previous
Hexo zhaoo 博客完整搭建与 GitLab Pages 部署教程 Hexo zhaoo 博客完整搭建与 GitLab Pages 部署教程
从零开始使用 Hexo + zhaoo 主题搭建个人博客,并部署到 GitLab Pages 的完整教程,包含环境准备、项目创建、主题配置、CI/CD 部署、常见问题排查。
2026-05-08
Next 
Node.js 留言板部署到 Render 教程 Node.js 留言板部署到 Render 教程
Node.js 留言板部署到 Render 教程基于 Node.js + Express 搭建的留言板应用,免费部署到 Render 平台,支持图片上传、头像、管理员面板、背景自定义等功能。
2026-05-05
  TOC
过节
福到
小程序