好的,请尝试手动安装
手动安装指南(覆盖版本)
本指南说明如何在正在运行的 Discourse 容器内手动安装和应用 discourse-moetwemoji-twemoji-fakepng-override 插件,并阐明为什么不严格要求进行完全重建即可使用覆盖版本。
1. 进入 Discourse 容器
在您的服务器上,进入 Discourse Docker 目录(通常是 /var/discourse)并进入正在运行的容器:
cd /var/discourse
./launcher enter app
您现在应该已进入容器 shell。
2. 手动克隆覆盖插件
导航到插件目录并克隆仓库:
cd /var/www/discourse/plugins
git clone https://github.com/constansino/discourse-moetwemoji-twemoji-fakepng-override.git
验证目录是否存在:
ls discourse-moetwemoji-twemoji-fakepng-override
3. 应用 Emoji 覆盖
返回 Discourse 根目录:
su - discourse
cd /var/www/discourse
检查当前状态(可选但推荐):
RAILS_ENV=production bundle exec rake moetwemoji_twemoji:status
应用覆盖:
RAILS_ENV=production bundle exec rake moetwemoji_twemoji:apply
如果命令在没有错误的情况下完成,则 Twemoji PNG 文件已被 Moetwemoji 替换。
4. 关于重建的重要说明(持久性)
无需重建即可使覆盖生效
此覆盖版本通过直接替换正在运行的容器中的文件来工作。
因此:
-
您不需要运行 ./launcher rebuild app -
运行 rake 任务后更改会立即生效
但更改不具有持久性
因为这是在容器文件系统内部完成的:
-
任何将来的
./launcher rebuild app -
或容器重建/升级
都将清除更改,并且 emoji 覆盖将丢失。
如果您需要在重建后保持持久性,则必须通过 app.yml 钩子安装插件并正确重建。
5. 清除 CDN 和浏览器缓存(非常重要)
应用覆盖后,由于缓存,emoji 可能仍显示未更改。
5.1 清除 CDN 缓存(例如 Cloudflare)
如果您使用的是 Cloudflare 等 CDN:
-
清除缓存:
-
/images/emoji/* -
如果有必要,执行完全缓存清除
-
否则,旧的 Twemoji PNG 文件可能仍会被提供。
5.2 清除浏览器缓存
在客户端:
-
强制刷新页面(
Ctrl + F5/Cmd + Shift + R) -
或清除浏览器缓存
-
或在隐身/私密窗口中测试
在清除 CDN 和浏览器缓存之前,emoji 更改可能不会显示。
6. 总结
-
此覆盖插件可以在不重建的情况下安装和应用
-
手动安装可用于:
-
测试
-
临时使用
-
调试
-
-
缺点是缺乏持久性
-
应用 emoji 覆盖后,务必清除CDN 缓存 + 浏览器缓存