【问题标题】:Ruby on Rails 3.1 RC1 Javascript Asset Pipeline ProblemRuby on Rails 3.1 RC1 Javascript 资产管道问题
【发布时间】:2011-06-10 12:37:08
【问题描述】:

我刚刚升级到 Rails 3.1,但在使用新资产管道加载我的 Javascript 时遇到问题。

我已将 js 文件(文件本身及其 .min 变体)复制到我的 /app/assets/javascripts 目录中,我的 application.js 清单如下:

//= require jquery
//= require jquery_ujs
//= require jquery-easytabs
//= require jquery-hashchange.min
//= require_tree .

但这似乎不起作用; Easytabs 未正确加载。奇怪的是,当我在控制台中查看编译的 application.js 文件时,我可以看到 Easytabs 代码,但它不起作用。

我发现如果我将代码直接粘贴到 application.js 文件中,它会按预期工作,所以我知道脚本正在工作。然而,这不是 application.js 文件的预期用途。

我将不胜感激有关下一步去哪里的任何指导,以确保正确加载 js 文件。

谢谢!

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3.1 sprockets


【解决方案1】:

尝试将所有插件(如 easytabs)移至供应商目录。

vendor/assets/javascripts/

然后将您的 application.js 文件更改为:

//= require jquery
//= require jquery_ujs
//= require_tree ../../../vendor/assets/javascripts
//= require_tree .

你应该(如果你问我的话)只将你为特定控制器编写的代码放在你的 app/assets/javascripts 目录中,其他所有东西,比如插件应该放在供应商目录中。

【讨论】:

    【解决方案2】:

    我设法弄清了这一点 - 似乎要求的顺序是按字母顺序排列的,所以 jquery_easytabs 是在 jquery_ujs 之前编译的。我通过重命名为 jquery_zeasytabs 解决了这个问题 - 不是最干净的,但它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-17
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      • 2011-09-03
      • 1970-01-01
      • 2018-09-01
      相关资源
      最近更新 更多