3

Rails3.2.3を使用してHerokuのCedarStackにデプロイしていますが、アセットパイプラインと必要なjQueryUIファイルのコンパイルに問題があります。

具体的には、問題は私が関連していると思う2つの別々の問題に現れます。

1)開発中はドロップダウンボタンが機能しませんが、本番環境では機能します

2)開発中、私の日付ピッカーとスライダーは機能せず、本番環境でも機能しません。ただし、ビューの上部でjavascript(<script src="/assets/jquery-ui.js" type="text/javascript"></script>)を呼び出すと、datepickerとsliderは開発では機能しますが、本番では機能しません

ローカルで、またスラッグのコンパイル中にアセットをコンパイルしようとしましたが、役に立ちませんでした。

私の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

私のconfig/environment / development.rb

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

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

私のconfig/environments/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

2 に答える 2

4

コードを表示しません。しかし、私の推測では、dom の負荷の問題である可能性があります。

jQuery()インスタンス化を呼び出しの中に入れてみてください。

これは twitter-bootstrap-rails の例です。

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

jquery UI オートコンプリーターについても同じことが言えます。

jQuery(function($){
  $("input.search-autocomplete").autocomplete({
    source: "/search"
  });
});
于 2012-04-23T04:43:39.837 に答える
1

「jquery-ui」の名前を「jquery-ui-1.0」のように変更して、その名前のファイルを「app/assets」に配置してみてください。名前が宝石によって提供されたものと衝突したと推測しています。

于 2012-04-11T02:55:16.290 に答える