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

Rails7升级后importmap-rails+sprockets无法找到stimulus-loading.js

解决 Stimulus-Loading.js 404 错误的方案

1. 重新执行 Stimulus 安装器

先确保所有必要文件和配置都正确生成,重新运行安装命令:

rails stimulus:install

执行后检查 config/importmap.rb,确认以下配置存在:

pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
pin_all_from "app/javascript/controllers", under: "controllers"

2. 配置 Sprockets 资产路径

编辑 config/initializers/assets.rb,添加 JavaScript 目录到资产路径:

Rails.application.config.assets.paths << Rails.root.join("app/javascript")

修改后必须重启服务器,让配置生效。

3. 手动生成 Stimulus-Loading.js 文件

如果安装器未自动生成,在 app/javascript 目录下创建 stimulus-loading.js,内容如下:

import { Application } from "@hotwired/stimulus"

const application = Application.start()

// 加载所有控制器
import controllers from "./controllers/**/*_controller.js"
controllers.forEach((controller) => {
  application.register(controller.name, controller.default)
})

4. 检查布局文件的加载标签

确认 app/views/layouts/application.html.erb 中使用 importmap 标准加载标签:

<%= javascript_importmap_tags %>

避免混用 javascript_pack_tag 等旧加载方式。

5. 清理并重新编译资产

执行完整的资产清理和预编译操作:

rails assets:clobber
rails assets:precompile

完成后重启服务器,再次访问 http://localhost:3000/assets/stimulus-loading.js 验证是否正常返回内容。

6. 确认开发环境配置

检查 config/environments/development.rb 中的资产相关设置:

config.assets.compile = true
config.public_file_server.enabled = true

确保开发环境下资产可动态编译,且静态文件服务启用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:15:59