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

Heroku部署LocomotiveCMS失败:无法加载locomotive/wagon/standalone_server

解决LocomotiveCMS部署Heroku后无法加载locomotive/wagon/standalone_server的问题

问题核心

LocomotiveCMS Wagon的standalone_server是本地开发专用组件,Heroku生产环境下无法直接调用该模块,且3.1.1版本的Wagon生产gem包可能未包含该文件,这是部署崩溃的核心原因。结合你的环境(Heroku-20、Ruby 2.7.6、locomotivecms_wagon 3.1.1),以下是针对性修复方案:

具体修复步骤

1. 调整Gemfile生产依赖

确保生产环境包含标准Web服务器及必要组件,修改Gemfile内容:

gem 'locomotivecms_wagon', '3.1.1'
gem 'puma'
gem 'rack'

执行本地依赖更新并提交锁文件:

bundle install --without development test
git add Gemfile Gemfile.lock
git commit -m "Fix production dependencies"

2. 配置正确的Procfile

替换依赖wagon serve的启动命令,使用Puma作为生产服务器,在项目根目录创建/修改Procfile:

web: bundle exec puma -p $PORT -e $RACK_ENV

若偏好rackup启动,也可配置为:

web: bundle exec rackup config.ru -p $PORT

3. 添加/修正config.ru入口文件

如果项目无config.ru,创建该文件并指定适配3.1.1版本的Wagon服务器入口:

require 'locomotive/wagon'

# 绑定Heroku分配的端口
Locomotive::Wagon::Server.set(:port, ENV['PORT'] || 3000)
# 启动Wagon服务器
run Locomotive::Wagon::Server

4. 本地验证生产启动逻辑

在本地模拟Heroku生产环境,确认启动无异常:

RAILS_ENV=production bundle exec puma -p 3000

本地启动正常后,重新部署到Heroku:

git push heroku main

额外排查要点

  • 查看Heroku启动日志:heroku logs --tail,确认是否有依赖缺失或文件路径错误
  • 检查Heroku上的gem文件结构:heroku run ls -la vendor/bundle/ruby/2.7.0/gems/locomotivecms_wagon-3.1.1/lib/locomotive/wagon/,若不存在standalone_server.rb,则说明该版本生产包不含此组件,必须使用标准Rack/Puma启动方式
  • 确认Heroku环境变量:在Heroku控制台设置RACK_ENV=production,避免加载开发环境配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:10:27