gpt4 book ai didi

javascript - 什么会导致 Rails 3.1 "= require jquery"停止工作?

转载 作者:行者123 更新时间:2023-11-28 10:14:43 25 4
gpt4 key购买 nike

我正在将 Rails 3.0.9 应用程序移植到 Rails 3.1.rc5。我的 application.js 与 Rails 3.1 本身生成的完全相同:

// This is a manifest file ...
//
//= require jquery
//= require jquery_ujs
//= require_tree .

但是当我运行我的应用并在 Firebug 或 Chrome 开发者工具中查看 application.js 时,我看到的只是:

// This is a manifest file ...
//

指令消失了,因此文件似乎已被 Sprockets 处理,但指令尚未被 jquery 等内容替换。服务器控制台或日志中没有出现错误。

奇怪的是,当我运行 blog 应用程序(你知道, canonical tutorial app )时,它工作正常(也就是说,当我在 Firebug 中检查 application.js 时,它包含 jQuery 的文本。)这似乎表明我的应用程序中的某些内容以某种方式干扰了 Sprockets。有没有人听说过这样的问题(希望有解决方法)?

这是我的设置:

$ gem list jquery

*** LOCAL GEMS ***

jquery-rails (1.0.12)
$ ruby -v
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
$ rails -v
Rails 3.1.0.rc5

我不知道可能出了什么问题。我已经三次检查了我的 Gemfile;我已经运行并重新运行bundle installbundle update;我已经尝试过 rc3、rc4,现在又尝试了 rc5;我正在运行 Ruby 1.9.2p290。有什么想法吗?

最佳答案

一种解决方法:包含带有 old-skool 标签的 JavaScript 文件。例如,在我的(Haml)布局中:

= javascript_include_tag '/assets/jquery.js'
= javascript_include_tag '/assets/jquery_ujs.js'
= javascript_tag 'jQuery.noConflict();'

/assets/ 前缀告诉 Rails 3.1.x 查看包含 gem 的 Assets 路径,因此您将获得与 Sprockets 指令相同的文件。但您不会获得串联或任何其他 sprockets 预处理。

仍在寻找更好的解决方案。

关于javascript - 什么会导致 Rails 3.1 "= require jquery"停止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com