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