1

3.0.xアプリとして始まり、最近3.2.2にアップグレードされたRailsアプリがあります。画像はapp/Assets / images / ecommerce / newにあり、rake assets:precompileローカルで実行するとpublic /Assets/にコピーされません。ただし、すべての画像ファイルをapp / Assets / images / ecommerce / newからルート画像アセットパス(つまり、app / Assets / imagens)にコピーし、rakeタスクを再度実行すると、画像はすべてpublic/assetsに送信されました。 。

サーバーを本番モードでローカルに実行すると、イメージは見つかりませんが、Engine Yardにデプロイすると、イメージが見つかります。それは非常に奇妙です、あなたは何が起こっているのか知っていますか?

アセットパイプラインは、アプリ/アセット/画像のサブディレクトリ内にある画像を処理できませんか?私は何かが足りないのですか?

アセットパイプラインに関係するものについて、config / environment/production.rbのソースを次に示します。

MyApp::Application.configure do
# Settings specified here will take precedence over those in config/application.rb

config.cache_classes = true

# 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 = true
config.assets.precompile += %w[*.png *.jpg *.jpeg *.gif] 

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

1 に答える 1

2

config.assets.compile = true が問題です。これは、あなたがすべきだと思っていることをしていません。これは実際にサーバーにオンデマンドでコンパイルするように指示します。それが、ファイルが表示される場合と表示されない場合がある理由を説明している可能性があります。

ディレクトリを追加する場合は、それらを config.assets.paths に追加します。

于 2013-03-13T17:11:05.450 に答える