小编use*_*597的帖子

Rails 7 (7.0.2.3) Importmap jQuery 未在视图中定义

我已经尽可能多地寻找有关在 Rails 7 (7.0.2.3) 中安装 jQuery 的帮助。我想在我的视图中的脚本标签中使用它,但我似乎无法将其导出到全局可用的位置,呃...任何地方。

当然 importmaps 就安装和映射包而言很容易操作。太棒了。之后,整个文档分崩离析,笼罩在这种使用 js 包的新方式上。环顾四周,有很多混乱。

也就是说,我如何添加这个或类似的东西:

import jquery from "jquery"
window.jQuery = jquery;
window.$ = jquery;
Run Code Online (Sandbox Code Playgroud)

到 application.js 或任何让这些全局函数工作的地方,比如 $. 我希望 $ 在我的所有视图中可用。

至于我所做的:

./bin/importmap pin jquery --download
Run Code Online (Sandbox Code Playgroud)

给我 importmap 行:

pin "jquery" # @3.6.0
Run Code Online (Sandbox Code Playgroud)

好的。然后查看 importmap JSON:

{
  "imports": {
    "application": "/assets/application-37a24e4747cc3cde854cbbd628efbdf8f909f7b031a9ec5d22c5052b06207eb8.js",
    "@hotwired/turbo-rails": "/assets/turbo.min-96cbf52c71021ba210235aaeec4720012d2c1df7d2dab3770cfa49eea3bb09da.js",
    "@hotwired/stimulus": "/assets/stimulus.min-900648768bd96f3faeba359cf33c1bd01ca424ca4d2d05f36a5d8345112ae93c.js",
    "@hotwired/stimulus-loading": "/assets/stimulus-loading-1fc59770fb1654500044afd3f5f6d7d00800e5be36746d55b94a2963a7a228aa.js",
    "jquery": "/assets/jquery-498b35766beec7b412bab57a5acbe41761daa65aa7090857db4e973fa88a5623.js",
    "controllers/application": "/assets/controllers/application-368d98631bccbf2349e0d4f8269afb3fe9625118341966de054759d96ea86c7e.js",
    "controllers/hello_controller": "/assets/controllers/hello_controller-549135e8e7c683a538c3d6d517339ba470fcfb79d62f738a0a089ba41851a554.js",
    "controllers": "/assets/controllers/index-7a8fc081f7e391bd7b6fba95a75e36f88ba813da2c4c8787adad248afb9a0a06.js"
  }
}
Run Code Online (Sandbox Code Playgroud)

丁。看来它就在那里。然后在 application.html.erb 中添加一个简单的脚本标签:

<script type="text/javascript" charset="utf-8">
        $(document).ready(function (){
            console.log('jQuery working.');
        })
</script>
Run Code Online (Sandbox Code Playgroud)

失败。检查员说:

(index):41 …
Run Code Online (Sandbox Code Playgroud)

jquery ruby-on-rails import-maps ruby-on-rails-7

13
推荐指数
1
解决办法
5408
查看次数