Heroku部署Rails API时Bundler安装gems失败提示require命令找不到
问题原因
- 你的
bin/bundle可执行脚本的解释器声明(shebang)位置错误:#!/usr/bin/env ruby必须放在脚本的第一行才能被操作系统识别,指定该文件使用Ruby解释器执行。你当前将# frozen_string_literal: true放在了文件首行,导致系统无法识别这是Ruby脚本,默认使用Shell解释器执行,自然无法识别require、def等Ruby语法关键字,触发语法报错。
解决步骤
- 调整
bin/bundle文件的行顺序,将shebang声明移到第一行,修改后的文件开头内容如下:
#!/usr/bin/env ruby # frozen_string_literal: true # # This file was generated by Bundler. # # The application 'bundle' is installed as part of a gem, and # this file is here to facilitate running it. #
- 建议同步检查项目
bin目录下的其他可执行脚本(如bin/rails、bin/rake等),确保所有脚本的shebang声明都在第一行,避免后续出现同类问题。 - 将修改后的文件提交到Git仓库,重新执行
git push heroku main即可完成部署。
内容的提问来源于stack exchange,提问作者Ruslan Valeev
相关产品推荐
相关产品推荐

