@chasedream1129 @board 更具体的,详见这个 issue: https://github.com/mastodon/mastodon/issues/16497
看起来你并不是在 docker 上运行?时至今日,最好的 Mastodon 修改版构建方法,仍是 github 上直接修改,Action CI 在线编译镜像,本地拉取并热更新,即使出错也可以快速回退上一版本。
@chasedream1129 建议可以尝试转换 docker,性能损失可以忽略不计,维护成本大大减小,修改更是可以直接热更新,镜像编译等可以通过 GitHub 在线进行,运维只需要 docker-compose up -d 这一句话就够了...
而你要转换过去,只需要 fork 一份官方代码,把你的覆盖,然后 push 到 GitHub,写一份编译镜像的配置文件,就可以了。
@chasedream1129 你这个更简单,强制编码,最前面加上 #encoding: utf-8 就完事了...
@official Ruby 2.x的默认编码就是UTF-8,加上# encoding: utf-8 之后也还是报错,把中文字符删了才行
@chasedream1129 那可能是后面调用的时候,和UTF8 直接相加,拼接出错误编码的字符串,这个其实可以看代码改一下提个 pr,但没必要...前端输出个版本号修改一下不如 js 改改得了...
@official
看来在app/javascript/mastodon/initial_state.js里加后缀就可以满足需求了
@chasedream1129 如果是我写,直接在页脚引入 js 暴力替换。事实上我对 Mastodon 的界面修改,全都是前端暴力替换,因为改动后端代码的确会影响程序的鲁棒性。
@official 前端有数个地方出现version,都是从这个js引用的数据,直接修改该文件会比较方便
@chasedream1129 了解了。我前端没用自带的主题,就只有未登陆的主页页脚有版本号。
@official 用docker是不是不用每次更新前端都assets:precompile?是镜像里已经编译好webpack了吗
@chasedream1129 事实上,是每次更新,都重新做整个镜像,但镜像pull是某种类似增量更新,所以没有太夸张。
@official 反正镜像构建不是在自己机器上,而是白嫖Github的资源,确实比Install from source更新平滑。下次服务器迁移我会试试的,线上环境就不乱搞了)
@chasedream1129 @board 我知道你的问题在哪里,你改了 ruby 代码,里面有非英文字符。