【发布时间】:2016-12-21 02:32:46
【问题描述】:
我有一个 Rails 应用程序在我的一个视图中的某些嵌入式 JS 中调用时无法加载 jQuery。我环顾四周,看到了一些常见的解决方案,所以我将列出我已经完成的工作:
jQuery 在我的 Gemfile 中未注释:
gem 'jquery-rails'
jQuery 在 application.js 中加载:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
application.html.erb 调用包含标签:
<%= 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 并将其放在 assets 文件夹中,然后预编译并将以下行添加到布局的头部:
<%= javascript_include_tag 'jquery.min', 'data-turbolinks-track'=> true %>
这最终导致我的 jQuery 脚本中的 ajax 调用成功调用了一个脚本。但是,仍然存在两个问题:首先,正如我上面所说,我想要一个更永久且不那么骇人听闻的解决方案,其次,ajax 调用的成功函数不起作用,尽管它在我的私人测试服务器上正常工作.两者之间的代码是相同的,所以我知道这不是代码中的问题,而且我几乎可以肯定它与一般情况下困扰 jQuery 的任何潜在问题有关。
【问题讨论】:
-
你在安装包后重启服务器了吗?
-
是的,我做到了。几次
-
如果您检查该页面源,您是否看到 jquery 在脚本标记中加载?
-
不,我没有看到。
-
只是为了清楚它会被缓存,所以它看起来像这样:“" *应该在页面顶部对这些进行大量检查。
标签: javascript jquery ruby-on-rails ruby