未捕获的ReferenceError:$未定义rails
我正在尝试将Froala编辑器添加到我的项目中。
问题只在生产服务器上(在localhost上工作正常)我正在使用rails 4.1.0在gemfile中我有
gem 'jquery-rails'
在我的assets / javascripts / application.js中:
//= require jquery //= require jquery_ujs //= require foundation //= require turbolinks //= require_tree . //= require modernizr //= require froala_editor.min.js
在new.html.erb文件中:
Title
Content
'content' %>
$(function() { $('div#content').editable({ inlineMode: false }) });
在application.html.erb中:
true %> true %>
在这种情况下,结果是:
Uncaught ReferenceError: $ is not defined
如果我要添加一个字符串:
结果是:
Uncaught TypeError: undefined is not a function
替换application.html.erb
<%= javascript_include_tag "application" 'data-turbolinks-track' => true %>
至
<%= javascript_include_tag "application" %>
尝试切换这些行:
<%= javascript_include_tag "vendor/modernizr" %> <%= javascript_include_tag "application" 'data-turbolinks-track' => true %>
会变成
<%= javascript_include_tag "application" 'data-turbolinks-track' => true %> <%= javascript_include_tag "vendor/modernizr" %>
你如何将基础添加到项目中?
在app/assets/javascripts/aplication.js
我有同样的错误
$没有定义
我通过这种方式重新加载基础js来解决:
jQuery(document).ready(function($) { $(document).foundation(); });
为我工作的解决方案是:
单独的文件
创建assets / javascripts / jquery_init.js内容:
//= require jquery //= require jquery.turbolinks //= require jquery.cookie //= require jquery.ui.all //= require jquery_ujs
在aplication.js之前调用
<%= javascript_include_tag "jquery_init" %> <%= javascript_include_tag "application", :async => !Rails.env.development?, "turbolinks-data-track" => true %>
这是我的解决方案:
把它放在你的app / assets / javascripts / application.js中
//= require jquery //= require jquery_ujs
并安装此gem文件:
gem 'jquery-rails'