0

Rails 4 アプリにバックストレッチ (シングルまたはスライドショー) を使用しようとしています。backstretch-rails 2.0.4 の最新バージョンをインストールしました。最初のいくつかの問題の後、ローカルホストに画像を表示することができました。

Heroku にデプロイしようとしましたが、画像が表示されませんでした。画像は public/assets/images にありましたが、それらも含めて app/assets で指定しました... (変更なし)。RAILS_ENV=production bundle exec rake assets:precompile と heroku run rake assets:precompile の両方を試して、アセットをプリコンパイルしました。アセットはherokuに書き込んでいるようです。まだ画像はありません。

また、js が機能しない ( JavaScript が Heroku に読み込まれないが、ローカルで機能する) という問題がある可能性があることもわかったので、jquery-migrate をインストールしました。また、config/environments/production.rb で config.serve_static_assets を true に変更しました。解決していないように見えたので元に戻しました。

私はおそらく、SOFの他の人が私が読んだ同様の質問に修正されたと提案したこともいくつか試しました。

画像はまだherokuに表示されません。何か案は?アドバイスをよろしくお願いします!

これは私のGemfileです:

source 'https://rubygems.org'
ruby '2.0.0'

gem 'sass-rails', '4.0.0'
gem 'rails', '4.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'will_paginate', '3.0.4'
gem 'bootstrap-will_paginate', '0.0.9'
gem 'rmagick', '2.13.2', :require => 'RMagick'
gem 'carrierwave', '0.9'
gem 'backstretch-rails', '~>2.0.4'
gem 'jquery-migrate-rails','1.2.1'
gem 'railties','~>4.0.0'

group :development, :test do
  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails', '2.13.1'
  gem 'guard-rspec', '2.5.0'
  gem 'spork-rails', '4.0.0'
  gem 'guard-spork', '1.5.0'
  gem 'childprocess', '0.3.6'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
  gem 'factory_girl_rails', '4.2.1'
end


gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.0'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor', '0.0.2'
end

gem "better_errors", "0.3.2"
gem "binding_of_caller"

これは私のapplication.jsにあります:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap/bootstrap
//= require jquery.backstretch
//= require_tree .

これは私の見解です:

$.backstretch([
      "/assets/images/1.png"
      ,  "/assets/images/2.png"
      ,  "/assets/images/3.png"
    ], {duration: 3000, fade: 750});
</script> 
4

1 に答える 1

1

asset-pipeline本番環境で画像にハッシュを追加する際に問題が発生している可能性があると思います.Rails Guide for Asset Pipeline - Section 2.3で詳細をasset_path確認してください。

あなたの見解で試してみてください

$.backstretch([
      "<%= asset_path '1.png' %>"
      ,  "<%= asset_path '2.png' %>"
      ,  "<%= asset_path '3.png' %>"
    ], {duration: 3000, fade: 750});
</script>

更新(コメントの問題について):$(document).ready();DOM全体の準備が整い、jquery.backstretchライブラリがロードされた後に実行されるように、ラップしてみてください。

$(document).ready(function() {
    $.backstretch([
          "<%= asset_path '1.png' %>"
          ,  "<%= asset_path '2.png' %>"
          ,  "<%= asset_path '3.png' %>"
        ], {duration: 3000, fade: 750});
});
</script>

お役に立てれば

于 2013-11-28T04:43:00.000 に答える