You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于ENV变量动态修改ActiveAdmin导航栏颜色的实现问询

实现ActiveAdmin导航栏颜色根据环境变量切换

步骤1:配置环境变量

在你的环境配置文件(比如.env、config/environments/development.rb等)里设置环境变量,示例:

RAILS_ENV_COLOR=blue

可选值设为gray、blue、purple、green,对应你需要的四种颜色。

步骤2:给页面注入环境颜色标识

打开config/initializers/active_admin.rb,在ActiveAdmin.setup do |config|代码块中,添加前置动作传递环境变量:

config.before_action do
  @env_color = ENV['RAILS_ENV_COLOR'] || 'gray' # 默认 fallback 到灰色
end

如果是ActiveAdmin 2.0.0版本,直接修改布局模板更稳妥:创建或修改app/views/layouts/active_admin.html.erb,把body标签改成:

<body class="<%= @env_color || 'gray' %>">
  <%= yield %>
</body>

步骤3:编写SCSS样式覆盖默认颜色

打开app/assets/stylesheets/active_admin.scss,添加对应颜色的样式:

// 灰色导航栏(默认)
body.gray .active_admin-header {
  background-color: #6c757d;
}

// 蓝色导航栏
body.blue .active_admin-header {
  background-color: #0d6efd;
}

// 紫色导航栏
body.purple .active_admin-header {
  background-color: #6f42c1;
}

// 绿色导航栏
body.green .active_admin-header {
  background-color: #198754;
}

注:ActiveAdmin 2.0.0版本的导航栏类名可能是.navbar,如果上面的选择器不生效,替换成.navbar即可,可通过浏览器开发者工具确认类名。

验证效果

重启Rails服务器,切换RAILS_ENV_COLOR的取值,刷新ActiveAdmin页面就能看到导航栏颜色随环境变量变化,全程无需JavaScript。

内容的提问来源于stack exchange,提问作者kmfsousa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 03:48:23