推送到Heroku时RoR应用构建报错:ModuleNotFoundError无法解析../stylesheets/application
错误核心
该报错是Heroku构建RoR应用的资产预编译阶段触发,Webpacker在构建目录下查找app/javascript/packs中导入的../stylesheets/application文件时,未找到匹配任何支持扩展名的对应文件,导致编译终止。
排查修复步骤
- 核对本地文件路径:检查
app/javascript/stylesheets目录下是否存在application开头的样式文件,支持的格式包括.css/.scss/.sass等。如果你的样式文件存放在Rails默认的app/assets/stylesheets目录下,需要修改pack入口文件(通常是app/javascript/packs/application.js)中的导入语句匹配实际文件路径,或将样式文件移动到app/javascript/stylesheets目录。 - 确认文件已提交到git:检查该样式文件是否被
.gitignore规则拦截、未推送至远程仓库,本地存在文件不代表Heroku构建环境能读取到未提交的文件。 - 明确导入语句的扩展名:可以在pack入口的导入语句中明确标注文件后缀,例如将
import '../stylesheets/application'修改为import '../stylesheets/application.scss',避免Webpack自动匹配扩展名时出错。 - 检查Webpacker配置:核对
config/webpacker.yml中的extensions配置项,确认已包含你使用的样式文件后缀,默认配置已覆盖sass/scss/css,如被修改过需补回对应配置。 - 处理多分支部署报错:如果你从非main分支部署到Heroku,需执行命令
git push heroku <你的本地分支名>:main,即可规避同一版本重复构建的警告。
内容的提问来源于stack exchange,提问作者Juan C
相关产品推荐
相关产品推荐

