MozillaZine.jp フォーラム https://forums.mozillazine.jp/ |
|
Firefox の画像が特定のパスで表示されない https://forums.mozillazine.jp/viewtopic.php?f=2&t=15717 |
ページ 1 / 1 |
作成者: | ystskm [ 2015年10月14日(水) 12:14 ] | ||
記事の件名: | Firefox の画像が特定のパスで表示されない | ||
初投稿です。よろしくお願いします。 Firefox 上で動かしたい Web アプリケーションを作成していたときに、とても不思議な現象に直面しました。 解決できておらず苦慮しているので、解決のヒントや再現報告などいただければ幸いです。 現象: https://nty_portal.synquery.com/ の画像が1度は表示されるが、更新(リロードやスーパーリロード)すると表示されない。 しかし、一度「前のページに戻るボタン(←)」で一つ前のページに戻って「次のページに進むボタン(→)」で表示すると表示される。 また、中身は全く同じで、呼び出し URL が違うだけのアプリケーション(https://nty_portal.synquery.com/wawPjAO7) では問題なく表示される。 (再現させるには URL にアクセスし、アプリケーションに demo/demo でログインください。) 実行環境: Macbook Air (13-inch, Early 2015) OSX El Captain (10.11) Firefox 41.0.1 アドオンなどの影響はリフレッシュして除去しているつもりです。 <https://nty_portal.synquery.com/ での挙動> (1回目:正常表示される) (要求) Host: nty_portal.synquery.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: image/png,image/*;q=0.8,*/*;q=0.5 Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Referer: https://nty_portal.synquery.com/ Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1 Connection: keep-alive (応答) Age: 5202 Cache-Control: max-age=31536000,public Connection: keep-alive Content-Type: image/png Date: Wed, 14 Oct 2015 03:02:32 GMT Expires: Thu, 13 Oct 2016 03:02:32 GMT Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT Transfer-Encoding: chunked x-powered-by: foonyah (2回目:Command+Rリロード:表示されない) 画像リクエストが発生せず (3回目:前のページに戻ってから次のページに進む:正常表示) (要求) Host: nty_portal.synquery.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: image/png,image/*;q=0.8,*/*;q=0.5 Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Referer: https://nty_portal.synquery.com/ Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1 Connection: keep-alive (応答) Age: 5469 Cache-Control: max-age=31536000,public Connection: keep-alive Content-Type: image/png Date: Wed, 14 Oct 2015 03:07:00 GMT Expires: Thu, 13 Oct 2016 03:07:00 GMT Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT Transfer-Encoding: chunked x-powered-by: foonyah <https://nty_portal.synquery.com/wawPjAO7 での挙動> (1回目:正常表示される) (要求) Host: nty_portal.synquery.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: image/png,image/*;q=0.8,*/*;q=0.5 Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Referer: https://nty_portal.synquery.com/wawPjAO7 Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1 Connection: keep-alive (応答) Age: 5541 Cache-Control: max-age=31536000,public Connection: keep-alive Content-Type: image/png Date: Wed, 14 Oct 2015 03:08:12 GMT Expires: Thu, 13 Oct 2016 03:08:12 GMT Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT Transfer-Encoding: chunked x-powered-by: foonyah (2回目:Command+Rリロード:正常表示される) (要求) Host: nty_portal.synquery.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: image/png,image/*;q=0.8,*/*;q=0.5 Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Referer: https://nty_portal.synquery.com/wawPjAO7 Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1 Connection: keep-alive Cache-Control: max-age=0 (応答) Age: 5657 Cache-Control: max-age=31536000,public Connection: keep-alive Content-Type: image/png Date: Wed, 14 Oct 2015 03:10:07 GMT Expires: Thu, 13 Oct 2016 03:10:07 GMT Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT Transfer-Encoding: chunked x-powered-by: foonyah なお、プライベートウィンドウ上では https://nty_portal.synquery.com/ でも正しく表示されることを確認しております。
|
作成者: | ystskm [ 2015年10月15日(木) 15:40 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
ソースコードからデバッグを始めました。 どのあたりを見ると原因がわかりそうか、検討がつく方は是非ご教示ください。 |
作成者: | WADA [ 2015年10月16日(金) 12:43 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
https://nty_portal.synquery.com/ https: と、/ で終了(URI的にはディレクトリーの指定)でファイル名なし、が重要そうですね。 https://nty_portal.synquery.com だとどうなりますか? https:だから、データをキャッシュしなくて、リロードだと、/で終わっていてファイル名部分がないので、キャッシュに無かった時にHTTP GETをだしに行かない、という感じですね。 Back/Forwardだと、BacAndForwardキャッシュのWebページのデータを使って表示するんですが、動作としてはリンククリックなどと同じページの移動だから、キャッシュに無ければ普通にHTTP GETを出しに行くのでしょう。 http://www.abc.net だと、Apacheなどの設定で index.htmlなどを直接返してくると思います。 http://www.abc.net/xyz/ でリクエストをだしたとき、xyzがディレクトリーではなくてファイルの時は、ディレクトリーではなくてファイルだよ、と言って、/で終わらないものでリクエストさせ直す、というような形になるのが普通だったと思います。 http://www.abc.net や http://www.abc.net/xyz というファイル、 http://www.abc.net/ や http://www.abc.net/xyz/ というディレクトリー、 といったことが影響して、https: でキャッシュに無い時に、リロードで期待通りの動きになってくれない、ということに思えます。 |
作成者: | ystskm [ 2015年10月16日(金) 13:32 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
> WADA さん コメントありがとうございます。 https://nty_portal.synquery.com/ は FF の URLバー上 https://nty_portal.synquery.com と表示されて、pathname も同じ "/" で、挙動の変化もありません。ブラウザ上同じ扱いなのかなと思います。 Back Forward Cache が利用されている、という点は確かにそのような気がします。 > みなさま firefox がキャッシュの有無を判定する際、 サイト内でのリダイレクトの検証を行っていたりすることがあるのでしょうか。 環境として AWS の ElasticIP を使い出したあたりから調子がおかしい気がしているので、少し勘ぐっています。 現在、ソースコードの imgLoader あたりを読んでおり、imgCacheValidator の OnRedirectVerifyCallback あたりを探っています。 もしヒントになりそうなことがあれば、引き続きお願いいたします。 https://nty_portal.synquery.com/ (demo/demo でログインして現象を確認できます) |
作成者: | WADA [ 2015年10月16日(金) 17:23 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
外から見た症状は、ある<img src="/...">が、 https://nty_portal.synquery.com/wawPjAO7 でロードしたHTMLならリロードでも表示されるが、 https://nty_portal.synquery.com/ でロードしたHTMLだと、リロードで表示されない、 ですが、 実際には、 (a) https://nty_portal.synquery.com/wawPjAO7 でロードしたHTML/JSならリロードでも意図どおりに動くが、 (b) https://nty_portal.synquery.com/ でロードしたHTML/JSだと、リロードでは意図どおりに動かない、 というような気が... (a) ではbaseURI=https://nty_portal.synquery.com/wawPjAO7だが、 (b) ではbaseURI=https://nty_portal.synquery.com、とか、 があって、wawPjAO7の下であることを前提になっている部分があって、 ロードならば、完全にクリーンな状態でDOMが作られてJSが実行されるからいいが、 リロードだとそうは問屋が卸してくれない。 リロードでは、フォームの中身は維持するとか、ページの表示位置を維持するとかがありますから、DOMの要素にはリロード前の状態が残っているわけで、 また、windowコンテキストも、リロードで同じページだから、ゼロリセットして作り直しではなかったはずで、完全にクリアーされた状態を仮定しているコードだと、少し動きがおかしくなることがあり得ます。 |
作成者: | WADA [ 2015年10月17日(土) 19:42 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
> https://nty_portal.synquery.com/ > (demo/demo でログインして現象を確認できます) Google ChromeとSeaMonkey(2.33.1)でアクセスしてみたんですが、問題を見ることができません。 Seamonkeyで、オフラインストレージの書き込みの許可を求めてきたんですけど、これが関係? SeaMonkeyでのリロードだと、最初の画像から件の画像に行く時に、間延びした感じがありました。 リロードだと、ある機能が想定外に早く動いてしまい、<img>にURLをセットした後にイメージのロードに飛ばない? |
作成者: | ystskm [ 2015年10月18日(日) 05:00 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
解決しました。 https://nty_portal.synquery.com/ のアクセスにて cache.manifest がエラーを起こしていたことが原因のようです。 img タグの loading process でエラーが起きて、画像取得ロジックまで進んでいなかった、というところでしょうか。 いろいろとご指南ありがとうございました。 > WADAさん ご確認ありがとうございました。ご指摘のオフラインストレージが原因でした。 いろいろ試行していたタイミングだったので、ちょうど治っていたタイミングに見ていただいたのかもしれません。 |
作成者: | WADA [ 2015年10月18日(日) 18:23 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
ystskm さんが書きました: 解決しました。 https://nty_portal.synquery.com/ のアクセスにて cache.manifest がエラーを起こしていたことが原因のようです。 img タグの loading process でエラーが起きて、画像取得ロジックまで進んでいなかった、というところでしょうか。 いろいろとご指南ありがとうございました。 原因の推測は大ハズレだったですけど、スクリプトで色々やっている間に想定外のエラー、という部分だけは、当たっていたみたいですね。 ystskm さんが書きました: > WADAさん ご確認ありがとうございました。ご指摘のオフラインストレージが原因でした。 いろいろ試行していたタイミングだったので、ちょうど治っていたタイミングに見ていただいたのかもしれません。 オフラインストレージは、たまたま、SeaMonkeyでもちょっと見てみるか、と、日常使っているSeaMonkeyでも試したら、メッセージがでただけでして。 日常使っているSeaMonkeyでは、ちょっと怖そうなサイトには行かず、画像を見る程度(^^) Firefoxなら、いつでも新規プロファイルにして遊べるから、ちょっと怖そうなサイトでも平気なんですけどね。 まともな回答を得られなくても、誰かにちょっと話して見るだけで、いろいろと整理できたり、少し発想を変えて見てみるとかできて、うまいこと自分の力だけで原因を見つけたり解決策を見つけられる、って、結構あるんですよね。 ちょっと興味を持っただけの他人だと、リンクが書いてあるこどだし怖いサイトかもしれないけどGoogle ChromeとかSeaMonkeyでちょっと遊んでみるか、とかもやるので、それが功を奏したのかな? 何はともあれ、解決して良かったですね。 でも、cache.manifest がエラーを起こしていて、それでimg タグの loading process でエラーが起きて、画像取得ロジックまで進んでいなかった、 なんて、普通なら迷宮入りの案件...(^^) |
作成者: | ystskm [ 2015年10月21日(水) 07:45 ] |
記事の件名: | Re: Firefox の画像が特定のパスで表示されない |
> WADA さん そうですね、自分が話したことと、いただいた返信と、ソースコードを追いながらひとつずつ要因を探っていくと、思いのほかスムーズに答えに行き着くことができました。 実際に画面を確認していただき、ありがとうございました。 今また今度は webkit の svg レンダリングに頭を悩ませていますが笑 本件は無事、解決です。ありがとうございました。 |
ページ 1 / 1 | All times are UTC + 9 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |