3

我正在使用Rails 3.2.3并部署到Heroku的Cedar Stack,并且我的资产管道出现问题并编译了我需要的jQuery UI文件。Rails资产管道 - 编译jQuery UI资产的问题

具体问题表现在,我认为是相关的两个独立的问题:

发展

1)我的下拉按钮不起作用,但在生产中他们做

2)在发展我的日期选择器和滑块不起作用,而且它们也不能用于生产。但是,如果我把我的视图顶部的JavaScript(<script src="/assets/jquery-ui.js" type="text/javascript"></script>),该日期选择器和滑块工作在发展,但不是在生产中

我已经试过compiling the assets locally and also during slug compilation,但无济于事。

我的application.js:

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui 
//= require bootstrap 
//= require_tree . 

我的Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.3' 
gem 'bootstrap-sass', '2.0.0' 
gem 'bcrypt-ruby', '3.0.1' 
gem 'faker', '1.0.1' 
gem 'will_paginate', '3.0.3' 
gem 'bootstrap-will_paginate', '0.0.5' 
gem 'date_validator' 
gem 'jquery_datepicker' 

group :development, :test do 
gem 'sqlite3', '1.3.5' 
gem 'rspec-rails', '2.9.0' 
gem 'annotate', '~> 2.4.1.beta' 
end 

group :assets do 
gem 'sass-rails', '3.2.4' 
gem 'coffee-rails', '3.2.2' 
gem 'uglifier', '1.2.3' 
end 

gem 'jquery-rails', '2.0.0' 

group :test do 
gem 'capybara', '1.1.2' 
gem 'factory_girl_rails', '1.4.0' 
end 

group :production do 
gem 'pg', '0.12.2' 
end 

我的配置/环境/ development.rb

# Do not compress assets 
config.assets.compress = false 

# Expands the lines which load the assets 
config.assets.debug = true 

我的配置/环境/ production.rb:

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

# Compress JavaScripts and CSS 
config.assets.compress = true 

# Don't fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = false 

# Generate digests for assets URLs 
config.assets.digest = true 

我的布局application.html.erb:

<%= javascript_include_tag "application" %> 

回答

4

您不会向我们显示您的代码。 但我的猜测是它可能是一个dom加载问题。

试着把你的实例化在jQuery()调用中;

下面是twitter-bootstrap-rails的示例;

jQuery(function($){ 
    $("a[rel=popover]").popover(); 
    $(".tooltip").tooltip(); 
    $("a[rel=tooltip]").tooltip(); 
}); 

同样应该去任何jQuery UI的autocompleters

jQuery(function($){ 
    $("input.search-autocomplete").autocomplete({ 
    source: "/search" 
    }); 
}); 
1

尝试改变 'jQuery的UI' 的名字一样 '的jQuery-UI-1.0',并把该名称的该文件到您的“应用程序/资产”。我猜这个名字与宝石提供的东西冲突。

+0

您好,感谢您的帮助。不幸的是,这并没有奏效。它很奇怪。如果我在我的视图顶部使用google的api调用JavaScript脚本' '那么滑块和日期选择工作正常。但我仍然不知道为什么它使用资产管道无法正常工作。 – diasks2 2012-04-12 00:13:07

+0

然后只需下载该文件并替换机器上的本地文件即可。可能你的本地版本的jquery-ui是有缺陷的。 – 2012-04-12 02:20:15

+0

jquery-ui不是通过jquery-rails gem拉进来的吗?除非我误解了这个宝石的工作原理。 – diasks2 2012-04-12 03:00:35