Ruby on Rails - 未捕获的 ReferenceError:$ 未定义

Posted

技术标签:

【中文标题】Ruby on Rails - 未捕获的 ReferenceError:$ 未定义【英文标题】:Ruby on Rails - Uncaught ReferenceError: $ is not defined 【发布时间】:2013-09-30 23:33:58 【问题描述】:

我使用的是 Rails 3.2.13,我从 git repo 克隆了一个项目。 CSS 样式运行良好。但是整个 javascript 插件都没有加载。在控制台中,我收到一些 Javascript 错误,如下所示,

Uncaught SyntaxError: Unexpected token ILLEGAL
Uncaught ReferenceError: $ is not defined
Uncaught ReferenceError: $ is not defined
Uncaught ReferenceError: jQuery is not defined

在 application.js 中,

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

即使在预编译后也无法正常工作。 请帮我解决这个问题。

【问题讨论】:

你包括jQuery吗? 是的......此外,它是我克隆的工作项目。只有在我的本地系统中它不起作用。在 gem 列表中,我找到了 jquery-rails (3.0.4, 1.0.19) 通常,此错误消息表示您的项目中没有包含 jQuery 对不起...我没听懂你。请简要告诉我。 可能这不是 jquery 问题。第一个错误Uncaught SyntaxError: Unexpected token ILLEGAL 阻止加载jquery,因此下一个错误是第一个错误的结果。你能识别出第一个错误引用的代码部分吗? 【参考方案1】:

更新:在我的一台机器上遇到了这个问题。

不确定问题的确切根本原因是什么,但这是解决此问题的一种方法。

    请确保已安装以下 gem。

    gem 安装链轮

    运行以下命令

    rake 资产:预编译

要了解有关资产管道的更多信息,请参阅http://asciicasts.com/episodes/279-understanding-the-asset-pipeline

希望这会有所帮助。

【讨论】:

您好,请尝试让我知道结果。 嗨,我已经通过在环境文件中添加 config.assets.debug = true 解决了这个问题。谢谢你的回答。 @ShruthiRamesh 它必须是development.rb @ShruthiR 这对我有用,但很高兴知道为什么。细节赞赏。【参考方案2】:

在我的 mac 上升级到 mavericks 后,我在 rails 3.2.1 遇到了这个确切的问题。经过研究,我将 rails 更新到 3.2.18 解决了这个问题。显然,某些版本的 sprockets 在资产管道方面存在问题。在https://github.com/sstephenson/sprockets/issues/352查看更多信息

【讨论】:

以上是关于Ruby on Rails - 未捕获的 ReferenceError:$ 未定义的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails:未定义的方法 'digest' Rails 教程第 10.1.1 节

Ruby on Rails:视图更改后,网站未更新

Ruby on Rails 4 javascript未执行

Ruby on rails 中的资源未找到错误

使用 Ruby on Rails 一键删除所有未批准的帖子

Ruby on Rails 6 PUT json 参数未设置