gpt4 book ai didi

javascript - jquery 未在 Rails 服务器上加载 - '$ is not defined'

转载 作者:行者123 更新时间:2023-12-03 05:23:41 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,当在我的 View 之一中的某些嵌入式 JS 中调用时,该应用程序无法加载 jQuery。我环顾四周并看到了一些常见的解决方案,因此我将列出我已经完成的操作:

jQuery 在我的 Gemfile 中未注释:

gem 'jquery-rails'

jQuery 已加载到 application.js 中:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

application.html.erb 使用 include 标签调用:

<%= javascript_include_tag 'application', 'data-turbolinks-track'=> true %>

我也尝试过:

<%= javascript_include_tag 'application' %>

哪里可能出了问题?

编辑:

我能够让它工作,但这是一个明确的解决方法,我想找出一个更永久的解决方案。首先,我发现一位同事对该服务器的设置略有不同,并且 application.html.erb 被另一个布局覆盖,该布局在头部(或文件中的其他任何位置)不包含 javascript_include_tag 行。尽管添加了该行代码,错误仍然存​​在。我从在线 API 链接( https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js )保存了 jquery.min.js 并将其放置在 asset 文件夹中,然后预编译并将以下行添加到布局的头部:

<%= javascript_include_tag 'jquery.min', 'data-turbolinks-track'=> true %>

这最终导致我的 jQuery 脚本中的 ajax 调用成功调用了脚本。但是,仍然存在两个问题:首先,正如我上面所说,我想要一个更持久、更少黑客的解决方案,其次,ajax 调用的成功函数不起作用,尽管它在我的私有(private)测试服务器上正常工作。两者之间的代码是相同的,所以我知道这不是代码中的问题,而且我几乎可以肯定它与一般扰乱 jQuery 的任何潜在问题有关。

最佳答案

尝试添加:<%= javascript_include_tag 'application','jquery', 'data-turbolinks-track' => true %>

查看 jquery 文件是否正在您的页面上加载。

此外,您所做的解决方法无论如何都不是 hacky 或坏的,实际上对我来说,我更喜欢让 gulp照顾我所有的 Assets ,ruby 处理你的 Assets 的方式相当缓慢和笨重,特别是如果你试图将 Angular 之类的东西与 ui 路由器集成,我在 gulp 上编译和 mangle 的相同 Assets 大约需要 10 秒, ruby 需要超过 1 分钟。

您听说过的最后一件事bower ?它是一个很棒的包管理器,向您的应用程序添加依赖项非常容易。

关于javascript - jquery 未在 Rails 服务器上加载 - '$ is not defined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41254203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com