# 通过模板启用 YJIT 无效

**URL:** <https://meta.discourse.org/t/enabling-yjit-via-template-doesnt-work/401815>\
**Category:** Support\
**Created:** [2026年四月29日 14:26 UTC](https://meta.discourse.org/t/enabling-yjit-via-template-doesnt-work/401815 "2026-04-29T14:26:31Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![cedric\_chin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cedric_chin/32/536774_2.png) [@cedric\_chin](https://meta.discourse.org/u/cedric_chin)\
**Post date:** [2026年四月29日 14:26 UTC](https://meta.discourse.org/t/enabling-yjit-via-template-doesnt-work/401815/1 "2026-04-29T14:26:32Z")

</div>

你好，

我运行的是自托管的 Discourse 安装版（2026.5.0-latest）。今天我尝试启用 YJIT。我在 `containers/app.yml` 中添加了 `"templates/enable-ruby-yjit.yml"` 并重新构建了应用。

重新构建完成后，发生了一些有趣的事情。在 Docker 容器内，我运行了 `env | grep RUBY_YJIT_ENABLE`，得到了 `RUBY_YJIT_ENABLE=1`。到目前为止一切正常。但随后我运行了 `sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "YJIT enabled: #{RubyVM::YJIT.enabled?}"; puts RUBY_DESCRIPTION'`，结果却是：

```bash
YJIT enabled: false

ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [x86_64-linux] 

```

尽管添加了 `enable-ruby-yjit.yml` 模板，YJIT 仍未启用。接着，当我运行 `sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "GlobalSetting.yjit_enabled=#{GlobalSetting.yjit_enabled}"'` 时，得到的是 `GlobalSetting.yjit_enabled=` —— 一个空值！

总之，在进一步折腾后，我最终通过在 `containers/app.yml` 中添加以下内容成功启用了 YJIT：

```yaml
env:
  DISCOURSE_YJIT_ENABLED: true

```

我确信某处存在一个 bug（`GlobalSetting.yjit_enabled` 绝不应该返回 nil），但设置环境变量确实生效了。希望有人通过 Google 搜索到这个问题时能发现这个主题。

---

_[View the full topic](https://meta.discourse.org/t/enabling-yjit-via-template-doesnt-work/401815)._
