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

Rails 7(Webpack)项目JavaScript无法加载问题求助

Rails 7 Webpack JavaScript 无法加载问题

我用以下命令创建了Rails 7应用:

rails new CHANGE_THIS_TO_YOUR_RAILS_APP_NAME \
  -d postgresql \
  -j webpack \
  -m https://raw.githubusercontent.com/lewagon/rails-templates/master/devise.rb

原本应用运行正常,但添加Bootstrap模态框时发现JavaScript完全无法加载到application.html.erb中,甚至简单的console.log("hello")都没有执行。

已尝试的方案:

  • 修改application.html.erb中的JavaScript标签
  • 重新安装Webpack
  • 更换创建应用的模板

排查与解决步骤

1. 确认Webpacker标签正确性

在application.html.erb的</body>前,确保使用Webpacker对应加载标签:

<%= javascript_pack_tag 'application', 'data-turbo-track': 'reload' %>

注意:因为你创建时指定了-j webpack,所以不能用Rails 7默认的javascript_importmap_tags,必须用javascript_pack_tag。

2. 检查Webpack编译状态

运行Webpack编译命令,查看是否有报错:

bin/webpack

或者直接用Rails 7的bin/dev同时启动服务器和Webpack开发服务:

bin/dev

如果编译有错误,根据终端提示修复(比如依赖缺失、语法错误等)。

3. 核对application.js入口配置

检查app/javascript/packs/application.js的导入逻辑,确保基础模块和测试代码都正确:

// 导入Rails核心模块
import "@rails/ujs"
import "@rails/activestorage"
import "channels"

// 测试输出
console.log("hello from application.js");

// 如果引入Bootstrap,需添加对应导入
import "bootstrap"

同时确认config/webpacker.yml中的默认配置:source_path指向app/javascript,source_entry_path为packs,这两项默认无需修改,但可以核对是否被篡改。

4. 清除缓存并重启服务

缓存可能导致加载异常,执行以下命令清理后重启服务:

bin/rails assets:clobber
bin/webpack clean

然后重新运行bin/dev,刷新页面查看控制台输出。

5. 查看浏览器控制台错误

打开浏览器开发者工具(F12):

  • 在Console标签查看是否有JS加载失败、语法错误提示
  • 在Network标签检查application.js的请求状态,若为404说明文件未编译或路径错误

6. 确认Bootstrap依赖配置

如果通过npm安装Bootstrap,先确保依赖安装完整:

yarn add bootstrap jquery popper.js

然后在config/webpack/environment.js中添加全局依赖配置:

const { environment } = require('@rails/webpacker')
const webpack = require('webpack')

environment.plugins.append('Provide', new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery',
  Popper: ['popper.js', 'default']
}))

module.exports = environment

同时在app/javascript/stylesheets/application.scss中导入Bootstrap样式:

@import "bootstrap";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:05:16