IOS8以降、私が管理していたサイトで、画像が他の画像と場所を交換するという断続的な問題が発生しています。これは多くの場所で言及されていますが、明確な解決策はありません:
https://discussions.Apple.com/thread/657466
http://tech.vg.no/2011/12/14/safari-on-ios-5-randomly-switches-images/
http://tech.vg.no/2012/02/01/safari-on-ios-5-randomly-switches-images-part-3/
以前はiOS5の問題でした。私たちのサーバーは、パイプラインとキープアライブを備えたLightspeedを実行しています。サーバー管理者は、パイプライン処理が要求された順序でアセットを返すことを確認しました。キープアライブを無効にすると問題が解決する可能性があると彼は述べていますが、サーバーの負荷が大幅に増加し、これは本当に悪いことです。
私のすべてのアセットもcontent-lengthを正しく渡しています。
これに対する解決策については、私は本当に行き止まりにいます。私のユーザーの多くがiOSを使用しているので、その始まりは誰にとっても非常にイライラし始めています。
これは、Safariにかなり大きな変更が加えられたiOS8の導入によってのみ発生し始めました。 8のすべてのリリースで、問題はまだ残っています。私が言ったように、それは断続的であり、私たちのユーザーは「他のサイトには問題がない」として私たちを非難し始めています。
誰かがこれに光を当てることができるのだろうか?他の誰かがこの問題を経験したり、解決策を見つけたりしましたか?
ここ は問題の私のサイトへのリンクです。
私の場合、http/2プロトコルを使用すると問題が解決したようです。しかし、この問題に対する実際の修正/解決策があるかもしれないと確信しています。
立ち上げたばかりの新しいウェブサイトでこの問題に対処していました。 FF/Opera/Chromeなどではすべてが問題なく見えましたが、iOS8以降では画像のスワッピングに大きな問題がありました。この問題を報告しているサイトの多くがLitespeed Webサーバーを実行していることに気づきました。私はテストのために少しの間Apacheに切り替えました、そして確かに、ウェブサイトはうまくロードされました。私のホスト(wiredtree.com、優れたサービス)とLitespeedの構成オプションのいくつかを見て、次の2つのオプションを無効にしました。
これら2つを無効にした後、ウェブサイトは問題なく読み込まれました。パフォーマンスに非常にわずかな影響がありましたが、それだけの価値はあります。
最初は、キープアライブを無効にしてHTTPパイプラインを効果的に無効にしようとしましたが、問題は解決しませんでした。上記は、私が実際に解決策を提供した唯一のことです。
うまくいけば、これは同じ問題を扱う誰かを助けることができます!
私たちにもこの問題があり、解決策はHTML内のすべてのタグを削除し、代わりにbackgroundプロパティを持つcssクラスを使用することでした。次に例を示します。
.img_logo {
background: url(../images/logo.png?v=20150427) no-repeat;
width: 175px;
height: 49px;
display: block;
}
少しぎこちない感じですが、これが問題を解決する唯一の方法でした。 1つの欠点は、画像の「alt」を削除する必要があったことですが、必要に応じてJavaScriptで解決できると思います。
お役に立てれば!
答えではなく、問題を解決するためのアプローチ:
手順5まで問題を再現でき、設定の変更またはサーバーソフトウェアの変更のno setで違いが生じる場合、問題はiOSにあり、おそらく何もできません。 (しかし、これはありそうもないことです。)
ただし、notがLitespeedに依存する一連の構成変更がある場合(つまり、Apacheでも発生する)、回避策を実行できます:BrowserMatch
ディレクティブを使用します特定の(セットの)ブラウザーを検出する。このセットBrowserMatchセットの構成パラメーターを設定します。この種の例は、IE 3.0およびNetscapeブラウザまでさかのぼります。
問題がLitespeedであることが判明した場合は、上記のアプローチを使用して、Litespeedサポートにバグを報告してください。あなたはサポートにお金を払っていますね?