1

application.rbファイル内で次のようにアセットパイプラインを有効にしてRailsアプリをデプロイしました。

# Enable the asset pipeline
config.assets.enabled = true

確認すると、ディレクトリ内のコンパイラによってファイルが処理されていることがわかりますがpublic/assets、Webサイトをブラウザで実行すると、ブラウザでアセットを解決できません。アセットに直接アクセスすると、Nginxによる404メッセージが表示されます。

誰かが何が起こっているのか教えてもらえますか?

4

3 に答える 3

3

基本的に、コンパイルおよびgzip圧縮されたファイルは正しいディレクトリに存在しません。

開発環境で実行している場合は、設定config.assets.compile = trueしてみてください。config/environments/development.rb呼び出されると、その場でアセットファイルが生成されます。パフォーマンスが低下するため、これは生産に悪影響を及ぼします。

したがって、本番環境を使用している場合は、実行してみてください

rake assets:precompile

于 2012-12-19T08:03:11.317 に答える
1

私は最近同じ問題に遭遇しました。実稼働環境について話していると思います。application.rb解決策は、次のいずれかの方法でスプロケットを再度要求することでした。

require 'sprockets/railtie'

また

require 'rails/all'

Railsフレームワーク全体を使用せず、Mongoidを優先してActiveRecordをオフにしたため、これは失われました。rails/all落とし穴は、Railsを新しいバージョンに更新するときに、内容が変更されていることに気付かない場合があることです。

于 2012-12-19T08:05:20.617 に答える
0

上記の答えは良かったのですが、それは私の問題ではありませんでした。Nginxが適切に構成されていないことを除いて、Railsは書き込みを行っていました。私のNginx構成は、ディレクトリではなくメインアプリケーションディレクトリを指していましたpublic

つまり、元々は次のとおりでした。

server {
  server_name wptrends.envato.com;
  root /home/deployer/apps/report/current;
  ...

これであるはずだったとき:

server {
  server_name wptrends.envato.com;
  root /home/deployer/apps/report/current/public;
  ...
于 2012-12-19T22:09:54.087 に答える