默认不再支持动画 GIF 头像

为简化 Discourse 代码库,自当前的 2.6 beta 版本起,Discourse 默认将不再支持动画 GIF 头像。

请注意,帖子中的动画 GIF 将继续正常工作(当然!),我们此处仅特指头像

未来可能会有插件为有此需求的站点重新启用动画 GIF 头像支持,但目前我们尚未制定该插件的时间表。

35 个赞

我觉得我们很快就要爆发内战了::sweat_smile:

12 个赞

我猜支持 SVG 头像后,SVG 动画也能正常工作了。

1 个赞

在 Discord 上,我们无法上传 SVG 格式的自定义表情符号,因为矢量图形可能会引发问题。

SVG 的渲染复杂度可以任意高(想象一个包含渲染数十万条贝塞尔曲线指令的 SVG 文件)。这意味着有人可以构造一个 SVG,导致客户端在尝试渲染时变慢甚至卡死,而且很难开发出可靠的启发式算法来检测这种情况。

内置表情符号可以是 SVG,因为它们显然不是恶意的,但我们无法对自定义表情符号做出同样的保证。

我想任何允许用户上传 SVG 文件的应用都会面临同样的问题,但我不确定是否可以设置某些限制来减少潜在风险。

5 个赞

哎呀!真糟糕,我的动态头像在新版 Discourse 实例上无法使用了。我建议可以在 app.yml 中添加一行,与主机名行类似,以便启用该功能。当然,这需要大量工作,并且要等到非常靠后的版本更新中才能实现。

#GIF_avatars: Y(默认禁用)

3 个赞

如果用户通过链接从外部网站上传动态头像,是否会导致同样的问题?

1 个赞

看起来这个改动也影响了动态自定义表情。我可是吃过大亏才发现的:试图更新现有的表情集,结果全变成了静态图片。现在甚至没法回滚了。:cry:

6 个赞

你好,这管用吗?因为我试遍了所有方法,但没有任何进展。

不,正如原帖所述,我们已移除了对 GIF 头像的支持。

8 个赞

用户卡片呢?

3 个赞

用户卡片上仍然正常运行,请查看我的示例。

我们已移除对头像的支持,因为头像需要频繁调整大小,而用户卡片中不存在这个问题。

6 个赞

我在生产环境中运行的是 2.6.0 版本,当我上传 GIF 到用户卡片时,它完全没有动画效果。我注意到上传的 GIF 被转换成了静态图片。我需要更改任何设置吗?目前我的站点设置中没有 allow_animated_avatarsallow_animated_thumbnails 选项。

4 个赞

我刚下载了你们的 GIF 并上传到我的用户卡片,但即使在这里也不起作用::sweat_smile:

5 个赞

再次跟进一下,你可以使用 animated WebP 作为用户卡片的背景。我刚更新了这里的示例以便测试。

4 个赞

有没有人开发过能让这个正常运行的插件?

1 个赞

我附议这个问题。那边有什么进展吗?

恐怕没有开发任何插件,如果要保留旧功能,插件将会非常复杂。

我们过去使用库:Gifsicle: Command-Line Animated GIFs 来调整动态头像的大小,但该依赖已被移除。

要在插件中实现,有以下几种选择:

  1. 以某种方式引入该依赖,这非常复杂,尤其是从插件层面引入,然后修改代码以在插件中支持此功能(极其困难)

  2. 放弃调整动态头像大小的功能,并为插件添加补丁(中等难度)

  3. 找出其他调整动态头像大小的方法并将其集成到插件中(极其困难)

Discourse 团队目前并未安排任何相关实验。我们已完全暂时放弃了动态头像的想法。

7 个赞

在我管理的论坛上,这些功能已无法使用,无论是用户卡片还是个人资料页眉图片。用户可以保留现有的内容,但如果他们尝试更新,只会显示为静态图片。

我尝试上传不同的 WebP 文件,无论是作为帖子内容还是用户卡片背景,都收到了以下提示:

这是我们的用户非常喜爱的一个功能,他们通常会在个人资料页面上投入大量精力。请问有人能提供建议吗?

1 个赞

这并不容易,因为正如你上方帖子中所示,我们已从应用构建流程中移除了对动画 GIF 的依赖。

2 个赞

是的,我理解 GIF 可能已无法使用,这确实令人遗憾。当我尝试上传 WebP 文件时,出现上述提示可能是什么原因?

1 个赞