6

Rails 3.1アプリを本番モード(Debian 6、Ruby 1.9.2、Passenger)で試してみます。IE6とIE7を使用して試してみましたが、一部のアセットが正しく読み込まれていません。開発モードではすべて正常に動作します。

一部のcssとjsが正しくロードされていないため、すべてのファイルがコンパイルされています。具体的には、ドロップダウン(jqueryスーパーフィッシュメニュー)に問題があります。IE8、IE 9、Firefox、Chromeでは、制作と開発の両方ですべてが正常に機能します。この問題は、本番環境のIE6および7でのみ発生します。

キャッシュをクリアしようとしました(ブラウザとサーバーの両方で)。アセットの再コンパイル。何も助けにはなりません。

誰かが何かに遭遇しましたか?そのような?

4

3 に答える 3

9

ここで同じ問題を抱えている人は、MSサポート(http://support.microsoft.com/kb/262161)の問題の原因です。

この問題は、InternetExplorerで次の条件が当てはまるために発生します。最初の31個のスタイルタグ以降のすべてのスタイルタグが適用されていない。最初の4,095ルール以降のすべてのスタイルルールは適用されません。@importルールを使用して、他のスタイルシートをインポートする外部スタイルシートを継続的にインポートするページでは、3レベルを超える深さのスタイルシートは無視されます。

ARRRRRRRRRRRRRRR !!! MSが再び標準に準拠していなかったときに、私のコードの問題を追跡しようとして数日を殺しました!!! #@)(!@#)

これにより、さらに調査することになりました。驚いたことに、IE6とIE7は、大きなcssファイルの最初の2025行のみを処理しているようです。残りは無視されます。(最初は行数の制限だと思っていましたが、2025行にあったのは4095ルールでした)。ただ愚かなようです。新しいIEとChrome、Safari、Opera、FFはこれに問題がないようです。結局、生産中のファイルの数を最小限に抑えるために、cssをapplication-1.cssとapplication-2.cssに分割しましたが、それでも非常に面倒です。

于 2012-01-03T23:41:20.880 に答える
1

デバッグは有効になっていますか?つまり、開発モードのときにJavaScriptが分割されますか?

アセットパイプラインがすべてを同じファイルにマージして、開発モードで引き続き機能するかどうかを確認するために、無効にしてみてください。

アセットがマージされ、ファイルの1つにセミコロンがない場合、いくつかの問題が発生しました。これは見つけるのが面倒かもしれませんが、起こるかもしれません。他のより良いブラウザはそれらを大丈夫にします、しかしIEはただ物事を混同します。

于 2011-12-23T22:50:11.800 に答える
1

人々がCSSファイルを分割するために使用している素晴らしいモジュールCssSplitterがあり、アセットパイプラインから使用できるようになっています。https://gist.github.com/2398394

于 2012-05-15T13:59:27.533 に答える