jquery中的空体函数.js - Rails 3.2 with jQuery-rails gem



我已经开发一个 rails 应用程序一个星期了。我使用 jquery-rails gem 来使用 jQuery,一切正常。但是今天,当我启动开发服务器时,jQuery只是没有加载。控制台给出了错误jQuery not defined$ not defined等等。所以我检查了jQuery文件是否被包含,它们是。但是当我单击指向jquery.js文件的链接时,它只包含以下内容。

(function() {

}).call(this);

jQuery就是不工作。

这就是我需要js库的方式:

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require bootstrap-datepicker/core
//= require_tree .

我尝试过互换引导程序和jQuery,甚至尝试删除jQuery并仅使用引导程序。似乎没有任何效果。

有趣的是,直到昨晚它一直完美地工作!而且我不记得添加或删除任何 js 库。我只是在写Javascript代码。所以我不知道一夜之间出了什么问题。

我唯一没有尝试过的是从CDN提供jQuery。但考虑到我的应用程序将部署在哪里,这不是一个选项。

请帮忙。

我的宝石文件:

source 'https://rubygems.org'
gem 'rails', '3.2.8'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'will_paginate', '~> 3.0.beta'
gem 'will_paginate-bootstrap'

#gem 'sqlite3'
gem 'mysql2'
#gem 'devise'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails',   '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'twitter-bootstrap-rails'
gem 'less-rails'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'bootstrap-datepicker-rails'
gem 'libv8'

提前谢谢。

更新:

好的,我已经弄清楚出了什么问题。我创建了一个名为jquery的控制器来简单地测试一些 jquery 插件,因此在/assets/javascripts下创建了一个jquery.js.coffee文件。当我删除此文件并删除控制器时,一切开始正常工作。

有人可以解释这种行为吗?

引用时

//= require jquery

在您的清单文件中,Rails 将在几个位置查找jquery.js的文件。这些位置在Rails.application.config.assets.paths中定义。

在这种情况下,jquery.jsjquery.js.coffee都是匹配的jquery.js,因为Coffeescript编译成Javascript。

当您生成了一个名为jquery的控制器并随后生成了一个jquery.js.coffee文件时,在 Rails 查看所包含 gem 的供应商目录之前,对引用文件jquery.js的查找已经满足。因此,包含错误的文件。

— 这回答了你(第二个)问题吗?

最新更新