0

私のRuby on Rails 3.2.1 APPは、Herokuにアップロードされたときに写真を表示しません。どこに問題があるのか​​ 本当にわかりません。localhost:3000 では、すべて正常に動作しています。テストを行い、Nivo スライダー タグの下ではなくコンテンツに画像を追加しましたが、すべて完璧ですが、Nivo の下ではアプリに何も表示されません。

Nivo スライダーのタグ:

<div class="slider-wrapper theme-default">
    <div class="ribbon"></div>
    <div id="slider" class="nivoSlider">
        <%=image_tag "/assets/birz.JPG"%>
        <%=image_tag "100.jpg"%>
        <%=image_tag "102.jpg"%> 
        <%=image_tag "103.jpg"%> 
        <%=image_tag "104.jpg"%> 
        <%=image_tag "105.jpg"%> 
        <%=image_tag "106.jpg"%> 
        <%=image_tag "107.jpg"%> 
        <%=image_tag "108.jpg"%> 
        <%=image_tag "109.jpg"%> 
        <%=image_tag "110.jpg"%> 
        <%=image_tag "111.jpg"%> 
        <%=image_tag "112.jpg"%> 
    </div>
</div>

production.rb

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

  # 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

Heroku スタック:

  aspen-mri-1.8.6
  bamboo-mri-1.9.2
  bamboo-ree-1.8.7
* cedar (beta)
4

2 に答える 2

1

config/environments/production.rb で、次の構成を確認します。

config.serve_static_assets
于 2012-05-12T00:05:21.767 に答える
1

私の production.rb は次のようになります (試してみる価値があります):

  config.serve_static_assets = false
  config.assets.compress = true
  config.assets.compile = true
  config.assets.digest = true

私は開発中にアセットをプリコンパイルしたので、これがうまくいくことがわかりました(私はここの記事に従っており、 オプション1.を使用して開発中にローカルでプリコンパイルしています)。これが私がすることです

1. First precompile assets in development run: "bundle exec rake assets:precompile" 

「public/assets ディレクトリが作成されます。このディレクトリ内に、コンパイルされたアセットの md5sums を含む manifest.yml があります。」- 出典: heroku docs

2. Then save to git and push to heroku

実稼働アプリでも同じエラーが発生するかどうかを確認してください (はいの場合、どうすればよいかわかりません)。

私のアプリでは、アセットをローカルでプリコンパイルするたびに、開発スタイルシートと JavaScript が狂ってしまいます :( . 解決するには、environment/development.rb を開いて次の行を変更します。

config.assets.debug = true

config.assets.debug = false

また、アセットのプリコンパイルがローカルに作成した public/assets ディレクトリも削除します。サーバーを再起動すると、再び機能するはずです。正しく理解するのは難しいようですが (アセット パイプライン)、これが役立つことを願っています。

于 2012-05-12T10:57:08.583 に答える