未捕获的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'