Moetwemoji:轻量级动画表情符号 (AVIF) - 让您的论坛充满活力

好的,请尝试手动安装

手动安装指南(覆盖版本)

本指南说明如何在正在运行的 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. 关于重建的重要说明(持久性)

:red_exclamation_mark: 无需重建即可使覆盖生效

覆盖版本通过直接替换正在运行的容器中的文件来工作。
因此:

  • :white_check_mark: 您不需要运行 ./launcher rebuild app

  • :white_check_mark: 运行 rake 任务后更改会立即生效

:warning: 但更改不具有持久性

因为这是在容器文件系统内部完成的:

  • 任何将来的 ./launcher rebuild app

  • 或容器重建/升级

都将清除更改,并且 emoji 覆盖将丢失。

:backhand_index_pointing_right: 如果您需要在重建后保持持久性,则必须通过 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 缓存 + 浏览器缓存