レールで作成され、heroku にデプロイされた (テスト) Web で、Google のページ速度テストを実行しています。
ページの上半分のコンテンツをブロックしている javascript および css ファイルに関する警告が表示されます。
したがって、主な提案は、javascript ファイルを非同期でロードし、css ファイルをタグの後に配置することです。私はそれを行いましたが、非同期に変更して最後に移動したファイルは警告に表示されませんが、変更方法がわからない2つのファイルが表示されます。
https://foo.herokuapp.com/assets/application-08af52LotOfnumbersAndLetters.js
https://foo.herokuapp.com/assets/application-08af52LotOfnumbersAndLetters.css
これは私のアセットから Rails によって生成されたファイルであり、スクリプトやスタイル タグによってロードされていないため、私の知る限り、css を移動したり、js を非同期にしたりすることはできません。
このファイルで速度テストに合格する方法はありますか?
レール5.0.0.1を使用しています
編集:レールで「期限切れ」を使用してブラウザーキャッシュを設定する方法も見つかりません。そして、それは私が見る別の警告です。
編集 2: 非同期に変更するかわからない Rails JavaScript アセットが、非同期に変更した materialize.js の前にロードされていることがコンソールに表示されるため、Rails JavaScript アセットがロードされたときにマテリアライズの関数が宣言されません。それらを呼び出すと、エラーが発生します。
編集 3: config/initializers/rails_admin.rb に行を追加すると機能するようです。誰かが同じ問題を見つけた場合は、以下を追加するだけです:
config.parent_controller = 'ApplicationController' 原因は次のとおりだと思います: rails_admin は、指示しないと application_controller を使用しないため、application_controller は rails_admin の例外をキャッチしません。