Rails 6 看不到 JS

Posted

技术标签:

【中文标题】Rails 6 看不到 JS【英文标题】:Rails 6 does not see JS 【发布时间】:2020-12-15 10:58:10 【问题描述】:

我创建了新应用程序。通过yarn add 安装了bootstrap、jquery、popper。 在app/assets/stylesheets/application.scss 中导入引导程序.scss(并且样式工作正常)。

发现js有问题。 Rails 好像根本看不到 js。

我已经做了什么:尝试import bootstrap并将简单的jquery代码添加到app/assets/javascript/packs/application.jsapp/assets/javascript/application.js。试图创建custom.js 并在application.js 中都需要它 在布局中更改了javascript_tag。 我尝试了教程中的所有建议。

一切都没有成功。我有一种预感,某个地方的 js 已经不小心编译了,而我在 application.js 中的任何编辑对 app 都没用。有可能吗?

我通过工头 Proc 文件以开发模式启动应用程序。

web: bundle exec puma -C config/puma.rb
webpacker: ./bin/webpack-dev-server

我错过了什么?

谢谢

【问题讨论】:

您能告诉我们实际的application.js 和您要导入的文件吗?如果没有minimal reproducable example,就不可能提供任何有意义的调试帮助。 【参考方案1】:

Rails 6 默认使用 webpacker 来打包 JS 代码。所以 JS 不再是通过资产管道捆绑(它曾经位于 app/assets/javascript 中。新文件夹直接位于 app 下,因此:app/javascript。此外,您现在需要带有 javascript_pack_tag 的 JS!

在此处阅读更多信息:https://prathamesh.tech/2019/08/26/understanding-webpacker-in-rails-6/

如果你想让 bootstrap 工作(并且你已经通过 yarn 安装了它),请将其导入 app/javascript/application.js

import "bootstrap";

【讨论】:

天啊,我太瞎了。我没有注意到应用程序中的 javascript 目录并且对资产进行了更改。非常感谢!【参考方案2】:

有一些依赖项,您必须添加它们才能使事情正常进行。我可以写下每一步,但是有一个很好的教程,它将逐步引导您完成: Add Bootstrap 4 to your Ruby on Rails 6 application

【讨论】:

以上是关于Rails 6 看不到 JS的主要内容,如果未能解决你的问题,请参考以下文章

Rails / execjs 找不到 Node.js

Rails 6 webpacker找不到已安装模块的模块

运行任何 rails cmnd 时找不到“activesupport”

Rails 3.1 和 Coffeescript 出现“找不到变量”错误

即使在捆绑安装后,rails也找不到宝石

在 Rails 4 生产环境中找不到资产的 404 错误