5

本番環境のアセットでいくつかの問題が発生しています:アセットがない、間違ったファイルにコンパイルされたもの( "/ admin"のjavascriptがフロントエンドコードにコンパイルされるなど)。ほとんどの資産はエンジンから来ています。これをデバッグして最適化したい。

そのためには、本番環境で行われるのと同じように、開発環境でプリコンパイル、提供、失敗する必要があります。

私は私のにいくつかの行を追加しましたconfig/development.rb

  config.serve_static_assets = true
  config.assets.precompile += %w( store/all.js store/all.css admin/all.js admin/all.css ) # @TODO: clean up, and optimize.
  config.assets.compile = false

これをで実行するrake RAILS_GROUPS=assets RAILS_ENV=development assets:precompileと、すべてのアセットとmanifest.ymlinが得られpublic/ます。

しかし、サーバーは失敗します:

Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Spree/home#index

Showing /xxxx/app/views/spree/shared/_head.html.erb where line #13 raised:

favicon.ico isn't precompiled

favicon.icoはプリコンパイルされていません。しかし、そうです!そこに、パブリックディレクトリに、でmanifest.yml、ブラウザ(またはwget)でフェッチできます:http:// localhost:3000 /assets/favicon.ico

ファビコンは、単に最初に呼び出されるアセットです。ファビコンを削除すると、問題は単に次のアセットである「all.js」、または削除された場合は「all.css」などで表面化します。「footer_bg.png」まで削除すると、そこで失敗します。繰り返しますが、問題はファビコンではありませんが、開発環境でプリコンパイルされたアセットがまったく表示されないという事実です。

本番環境と同様の開発資産パイプラインを取得するには、さらに何が必要ですか?

編集:ファビコンは問題ではなく、単なる症状であるというより明確な説明。

4

3 に答える 3

2

トラブルシューティングのために、localhostにパッセンジャーのApacheをインストールすることになりました。

Apache (おそらくパッセンジャー可能なサーバー) は、静的アセットの提供のためです。さらに、localhost では、ログの apache の冗長性を非常に高くして、十分なデバッグ情報を提供できます。

Ruby バージョンと gem の読み込みを本番環境で可能な限りエミュレートするパッセンジャー。

Webrick での実行はあまりにも違います。可能な限りエミュレートしたとしても、本番環境のスタックとはあまりにも異なることがわかりました。そのため、そこでの生産上の問題を再現できませんでした。

本番環境であるかのようにスタック全体を起動することで、トラブルシューティングを行うことができました。これにより、いくつかの問題が資産の問題を引き起こしていると結論付けました。宝石の資産が取得されていません。パーミッションの問題 (コンパイルされたアセットが www-data で読み取れない) と、いくつかのアセットが適切にコンパイルされていません。

于 2012-05-31T08:16:41.187 に答える
0

推測ですが、プリコンパイル リストに追加してみてください。

config.assets.precompile += %w( store/all.js store/all.css admin/all.js admin/all.css favicon.ico)
于 2012-04-18T22:28:47.210 に答える
0

favicon.ico私はあなたが去りたいと思うかもしれませんpublic...

alzabo0:~ $ rails --version
Rails 3.2.3
alzabo0:~ $ rails new ojoijoijo
[...]
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
[...]
于 2012-04-18T15:03:05.587 に答える