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

Rails 5.2.6部署Heroku时提示rails_admin.css不在资产管道如何解决

可行解决方案

你项目的assets文件夹为空不是问题诱因,rails_admin/rails_admin.css、rails_admin/rails_admin.js是Rails Admin gem内置的资源,不需要手动放到项目目录下,可按以下步骤排查修复:

  • 第一步:先删除你在config/initializers/assets.rb中手动添加的预编译规则,Rails Admin 2.0.2已经内置了资源预编译注册逻辑,手动添加反而容易引发路径匹配冲突。
  • 第二步:检查config/environments/production.rb的两个配置项:
    • 确保config.assets.compile = true,开启运行时动态编译兜底,避免预编译遗漏资源直接报错
    • 确保config.public_file_server.enabled = true,Heroku环境需要该配置开启静态资源服务
  • 第三步:如果你的项目使用Sprockets 4.x(可查看Gemfile.lock确认版本),需要在app/assets/config/manifest.js中添加如下声明:
    //= link rails_admin/rails_admin.css
    //= link rails_admin/rails_admin.js
    
    Sprockets 4默认以manifest.js的声明作为预编译依据,旧版本的assets.rb预编译规则优先级会被覆盖。
  • 第四步:配置调整完成后先清理本地和Heroku的缓存,本地执行rails tmp:cache:clear,Heroku端执行heroku run rails tmp:cache:clear assets:clean,之后再重新推送代码部署。
  • 第五步:如果以上配置都无效果,直接将Rails Admin的内置资源导出到项目本地,执行生成命令:
    rails g rails_admin:install
    
    该命令会自动把对应版本的css、js资源拷贝到你项目的assets/javascripts和assets/stylesheets目录下,预编译时会直接读取本地文件。
  • 第六步:部署到Heroku前可先本地验证预编译是否正常,执行命令:
    RAILS_ENV=production rails assets:precompile
    
    执行完成后查看public/assets目录下是否存在rails_admin-开头的css、js文件,确认本地预编译正常后再推送到Heroku。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:18:03