rails active admin 部署:找不到文件'jquery-ui'
Posted
技术标签:
【中文标题】rails active admin 部署:找不到文件\'jquery-ui\'【英文标题】:rails active admin deployment : couldn't find file 'jquery-ui'rails active admin 部署:找不到文件'jquery-ui' 【发布时间】:2013-05-26 12:21:44 【问题描述】:当尝试使用 capistrano 部署时,当 capistrano 使用命令时 bundle exec rake
RAILS_ENV=production
RAILS_GROUPS=assets
assets:precompile
我有这个错误
couldn't find file 'jquery-ui'
(in /home/umbrosus/.rvm/gems/ruby-1.9.3-p392@gancxadebebi/gems/activeadmin-0.5.1/app/assets/javascripts/active_admin/base.js:2)
之前它运行良好,但我尝试更新到 0.6,然后我开始出现此错误。我回到0.5.1,错误仍然存在。我做了坏事吗?
谢谢
【问题讨论】:
我在本地版本上遇到了同样的问题。使用 Ruby 2.0.0-p0 要么降级左右:***.com/questions/15874265/… 【参考方案1】:“jquery-rails”gem 最近删除了 jQuery UI。
https://github.com/rails/jquery-rails/commit/2fdcdb2633cbc6426d412c050200fc31d14b9a3b
他们推荐使用 jquery-ui-rails gem。
有一个active pull request(在撰写本文时)将该 gem 添加为依赖项。但是,ActiveAdmin 的开发人员表示他们是“locking it down until we officially drop support for Rails 3.0”。他们锁定的版本是jquery-rails < 3.0.0
。
同时,只需修改您的 Gemfile:
gem "jquery-ui-rails" 不推荐,见下方@Kevin 的评论
或者您可以降级您的 jquery-rails 版本:
gem "jquery-rails", "< 3.0.0"
或者你可以从他们的 Github master 分支中提取。他们已经应用了一个临时修复。
gem "activeadmin", github: "gregbell/active_admin"
【讨论】:
为了避免沮丧,我推荐第二种解决方案。gem "jquery-ui-rails"
将他们的 jquery-ui
文件命名为 jqueryui
,所以如果你走这条路,ActiveAdmin 仍然会出现加载错误。
将“jquery-rails”降级为“2.3.0”从我的角度解决了这个问题。在 Rails 3.2.13 上,顺便说一句。【参考方案2】:
将“jquery-rails”降级为“2.3.0”也为我解决了这个问题。
【讨论】:
有人得到了不涉及降级 jquery-rails 的完整答案吗?【参考方案3】:虽然Pull 请求现在已经合并到AA 中,但是如果你使用最新版本的AA,你仍然会遇到这个问题。我不喜欢将 JQuery-rails 强制降低到 2.3.0 版,所以这里有一个替代解决方案:
在active_admin.js
文件中替换
//= require active_admin/base
与
//= require jquery
//= require jquery_ujs
//= require jquery.ui.core
//= require jquery.ui.widget
//= require jquery.ui.datepicker
//= require active_admin/application
感谢Fred 提供该解决方案here。
【讨论】:
找不到文件'jquery.ui.core'【参考方案4】:好吧,没有必要将jquery-rails
降级为2.3.0
或指定 GitHub 分支。只需使用jquery-ui-rails
。要解决文件名差异:
只需创建app/assets/javascripts/jquery-ui.js
//= require jquery.ui.all
创建app/assets/stylesheets/jquery-ui.css
/*
*= require jquery.ui.all
*/
这些加载正确的文件以满足 ActiveAdmin
【讨论】:
我更喜欢这个,因为我通常喜欢使用 rubygems 作为源而不是 github 上的 master 分支。 只是按照这些说明操作,效果很好 - 谢谢。 我喜欢你的解决方案,因为我使用了其他依赖于 jquery-ui > 3.0.0 的 gems 我也喜欢这个解决方案,因为我需要使用 jquery-rails > 3.0.0 和 jquery-ui-rails。但是,我遇到了依赖问题。 . .Bundler could not find compatible versions for gem "jquery-rails": In Gemfile: activeadmin (= 0.6.1) depends on jquery-rails (< 3, >= 1.0.0) jquery-rails (3.0.4)
。我怎样才能解决这个问题???
@chuckw 我的Gemfile.lock
中有activeadmin 0.6.0
,但它没有jquery-rails (<3)
规则。 activeadmin 0.6.0
和 jquery-rails 3.0.4
对我来说似乎很好地共存。所以尝试将您的 ActiveAdmin 行更改为 gem 'activeadmin', '0.6.0'
以冻结它(假设您不需要 ActiveAdmin 0.6.1
的新功能)?您可能应该单独向 ActiveAdmin 的问题跟踪器报告此问题。【参考方案5】:
就我而言,jquery 问题是由于我使用的 gem 造成的。我没有直接使用 jquery,所以将 app/assets/js/jquery-ui.js 添加到我的项目中并没有帮助。
将 gem "jquery-rails", "
我的最终 gemfile:
# Temporary fix for jquery issue
gem "jquery-rails", "< 3.0.0"
gem 'turbolinks'
...简单易懂
【讨论】:
【参考方案6】:我知道这已经解决了。但我想再提供一个对我有用的解决方案。
遇到此问题时,我正在运行 Rails 4.0.8。
我只是删除了 jquery-rails gem jquery-ui-rails gem 的显式版本号。
我的基本上是这样的:
# js
gem 'jquery-ui-rails'
gem 'jquery-rails'
# rails admin
gem 'rails_admin'
Gemfile.lock
有点自动找出所有三个宝石的正确版本。
【讨论】:
以上是关于rails active admin 部署:找不到文件'jquery-ui'的主要内容,如果未能解决你的问题,请参考以下文章
将 Rails 3.1 项目部署到 Heroku 时出现问题:找不到 JavaScript 运行时
在控制器中找不到命名空间内的 Ruby on Rails 模型