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

升级至无Webpacker的Rails6.0后Heroku生产环境SCSS/Bootstrap未加载

问题解决方案

一、Rails版本与声明不符问题排查

  • 首先确认要部署到生产环境的代码分支中,Gemfile.lock是否已经同步了Rails 6.0的依赖更新,避免仅修改了Gemfile但未生成新的锁文件、或是锁文件未合并到生产分支的情况。
  • 清理Heroku生产环境的构建缓存,旧缓存会残留之前的Rails 4.1版本依赖,执行命令heroku builds:cache:purge -a 你的生产应用名称后重新触发部署,部署过程中注意查看构建日志中Rails版本的安装输出确认版本正确。
  • 检查Heroku生产环境的环境变量,确认是否存在BUNDLE_GEMFILE之类的配置强制加载了旧版本的Gem配置文件。

二、SCSS/Bootstrap未加载问题排查

  • 检查Sprockets 4.0所需的app/assets/config/manifest.js配置,该版本需要显式声明要预编译的静态资源,确保文件中存在以下两行配置:
//= link application.css
//= link application.js

如果缺少该配置,生产环境预编译时不会生成对应的css文件,而本地或staging如果开启了assets.compile = true会动态编译资源,所以不会出现问题。

  • 确认Heroku生产环境的RAILS_SERVE_STATIC_FILES环境变量已设置为true,可以通过命令heroku config:get RAILS_SERVE_STATIC_FILES -a 你的生产应用名称查询,该变量为真时应用才会对外提供静态资源访问。
  • 查看部署过程的构建日志,确认rake assets:precompile步骤正常执行无报错,无SCSS路径解析、依赖缺失类的错误输出。如果有通配符导入报错,可以先注释掉application.scss中的@import "**/*";行测试是否是路径匹配问题。
  • 检查Heroku的buildpack配置,确保官方Ruby buildpack排在最前,无第三方buildpack干扰资产预编译流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:45:04