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

Rails7+SolidQueue部署mission_control-jobs遇Propshaft加载路径错误求助

解决Rails 7 + SolidQueue环境下mission_control-jobs的Propshaft资源加载错误

问题场景

在使用SolidQueue的Rails 7应用中部署mission_control-jobs,访问http://localhost:3000/jobs时触发以下错误:

Propshaft::MissingAssetError at /
The asset 'mission_control/jobs/application.css' was not found in the load path.

已执行的部署步骤:

  • 添加mission_control-jobs gem到Gemfile
  • 执行bundle install
  • 在路由文件中添加引擎路由(mount MissionControl::Jobs::Engine, at: "/jobs")

运行rake assets:reveal后,已确认以下资源存在:

  • mission_control/jobs/application.css
  • mission_control/jobs/forms.css
  • mission_control/jobs/jobs.css
  • 多个mission_control相关JS文件

明明资源已被识别,却仍出现加载路径错误,可尝试以下解决方法:

可行的解决步骤

1. 手动配置预编译引擎资产

Propshaft默认不会自动预编译第三方引擎的资产,需在config/initializers/assets.rb中添加指定资产:

Rails.application.config.assets.precompile += %w( mission_control/jobs/application.css mission_control/jobs/application.js )

执行预编译命令生效:

rails assets:precompile

2. 确保Propshaft加载引擎资产路径

在config/application.rb中添加引擎资产目录到Propshaft加载路径:

config.assets.paths << Gem.loaded_specs["mission_control-jobs"].full_gem_path + "/app/assets"

该代码会自动获取gem的实际安装路径,无需手动填写版本号。

3. 开发环境调试缓存问题

如果是开发环境,先清除资产缓存再重启服务器:

rails assets:clean
rails server

同时确认config/environments/development.rb中的配置:

config.assets.debug = true
config.assets.compile = true

4. 验证引擎资产结构

检查mission_control-jobs gem的本地安装目录,确认application.css位于app/assets/stylesheets/mission_control/jobs/路径下,且文件本身无损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:07:06