更新
Firefoxを46にアップデートすると問題が修正されるようです!
元の調査
私もこの厄介な問題に直面しているので、試してみることにしました。
構成
- Ubuntu Server 12.4
- PHP 5.5.30
- MySQL 5.6.27
- サンプルなしのMagento 2.0.4の新規インストール
- キャッシュが無効な開発者モード
問題を再現する
一見、この問題は私にとって完全にランダムに見えました。しかし、いくつかのテストの後、問題を再現する方法を正確に見つけることができました。
ブラウザ
まず、Google Chrome、Internet Explorer 11、および古いWindows Safari 5.2.17で問題を再現することができませんでした。主にFireFox(45.0.2)を使用していますが、Google Chromeはほとんど使用していません。問題を再現する方法を正確に見つけた後でも、Chromeで再現することはできませんでした。
タブ
問題を再現するには、FireFoxでいくつかのタブを開く必要があります。
手順
- 管理パネルを開いてログインします
- ダッシュボードを開いたら、メニュー項目をクリックできます。通常、ダッシュボードアイコンをもう一度クリックします
- メニュー項目をクリックしたらすぐに、開いているタブのいずれかをクリックし、管理パネルの読み込みが完了するのを待っている間、インターネットの閲覧を続けます(タブタイトルの横にある回転アイコンに基づいて)
- 残念ながら、そのページはロードされません。
調査
したがって、クライアントが管理パネルのタブにフォーカスしていない場合、Magento 2はWebサイトが完全にロードするためのすべてのリソースをロードしていないようです。
私が気づいたのは、無限ロード管理パネルのページに戻ったとき、正常にロードされたリソースがたくさんあったことです。
Fabianが言ったように、コンソールにはエラーがなく、リソースはまだロードされておらず、ロードに失敗したリソースはありません。ページの読み込みが完了したように見えました。
ただし、Firefoxの[ロードの停止]ボタン(URLバーのX)をクリックすると、ページが無限ロード状態のときにここになかったいくつかのリソースがネットワークタブに追加されていることに気付きました。
注:以下のスクリーンショットはダッシュボード専用です。たとえば、構成ページで[読み込みを停止]ボタンをクリックした後、より多くのリソースが読み込まれていることに気付きました。
そのため、[ダッシュボード]ページでは、[読み込みの停止]ボタンをクリックした後にこれらのリソースが追加されました。
ページが正常にロードされると、別のタブに切り替えずに、DOMのロード後に次のリソースがロードされます(AJAXを介して想定)、これらと上記のリソースの間に太い灰色の線が表示されます。
そのため、何らかの理由で、ページが無限のロード状態にあるときに次のリソースが自動的にロードされますが、ページが正常にロードされるとDOMのロード後にロードされます。
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-popup.html
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-slide.html
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-custom.html
/static/adminhtml/Magento/backend/en_US/mage/apply/scripts.js
それがデバッグ作業に入ったところです。問題をテストして絞り込むためにできることはまだたくさんあると思いますが、テストをする時間はありませんでした。時間があるときに戻ってきます。
さらなる調査
それで、私はFireFoxにHTTPFoxプラグインをインストールすることになりました。
ここに、1分間の読み込み後に読み込み停止ボタンをクリックしたときに得られたものがあります(jquery.storageapi.min.js
時間列に59 が表示されています)。強調表示された行は、ロードを停止した後にロードしたリソースです。
GitHubで利用可能な最新バージョンでjquery.storageapiライブラリをアップグレードしようとしましたが、残念ながら問題を解決できないようです。
ファビコンの読み込みがリストの次であったため、ファビコンを頭に追加するコードにコメントしましたが、問題は修正されませんでした。
domReady.js
ファイルの名前が障害の可能性があるように聞こえますが、チャンスがないので、ファイルをデバッグしようとしました。
また、次の2つのaccess.log
ファイルもあります。
ここで何が起こっているのかまだわかりません。
更新
最近、インストールに2つの変更を加えました。
- FireFoxを46.0にアップグレードします
- 2.0.4から2.0.5へのアップグレード
これで問題を再現できなくなりました。