ワンボックス画像のアンパサンドのエンコーディングが誤っている

こんにちは、

お手伝いしている Discourse で、いくつかのリンクが読み込めないことに気づきました。

例えば、こちらのリンクです:

同じ現象がこちらでも発生しているため、一部のサイトが何らかの異なる対応をしているのではないかと思われます。

こちらではすべて正常に見えます:

何かご存知でしょうか?

これは完全に正常で、エラーはありません。

変ですね。最初に投稿を書いたときは、プレビューに画像が表示されませんでした。私が以前触れたDiscourseインスタンスでは、このように表示されます…

ただの黒いボックスだけです。

ターゲット元の画像が HTTP で、あなたのサイトが HTTPS であることが原因です。画像は HTTPS としてローカルにコピーしてミラーリングする必要があり、これには時間がかかります。バグではありません。

誰かに修正させたい場合は、ターゲットサイトに対して HTTPS の適切なサポートを促してください。

「いいね!」 3

ジェフ、ありがとうございます。

この URL…

…では、壊れた画像にはこのリンクが表示されます。

https://i.guim.co.uk/img/media/00899b988f9403a165de18ce59374793651b0a82/0_2234_3629_2177/master/3629.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvdGctZGVmYXVsdC5wbmc&enable=upscale&s=d5b96d8c2dd24b8d6723bba9f91f6724

そのリンクをメッセージボックスに貼り付けると、以下が表示されます。

そして、その画像のリンクは以下の通りです。

https://i.guim.co.uk/img/media/00899b988f9403a165de18ce59374793651b0a82/0_2234_3629_2177/master/3629.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvdGctZGVmYXVsdC5wbmc&enable=upscale&s=d5b96d8c2dd24b8d6723bba9f91f6724

最初のリンク(Onebox が生成した画像リンクだと思います)に、なぜこれほど多くの ‘&’ が含まれているのでしょうか?

ご助言をいただき、事前に感謝申し上げます。

「いいね!」 1

これは文字エンコーディングに関連していますか?

ああ、もしかしたらその通りかもしれませんね。http 画像では確かにこの動作を目にしたことがありますが、もしかすると元の onebox の画像エンコーディングが正しくなく、画像がダウンロードされた時点で何らかの形で修正されたのかもしれませんね。URL にアンパサンド(&)が含まれる画像ならすべて同様の影響を受けるはずなので、再現方法はそれですね。@techapj、どう思いますか?

「いいね!」 3

これは HTTP 画像の動作の例です:

壊れたリンクはこちらです:

http://static1.squarespace.com/static/598b5f49d482e97953d22893/t/59f745fdf9619a825c94ab96/1509377632841/22A-wooden-planet-inverted-no-blue-640x360.jpg?format=1500w

手動で https に変更すると正常に動作します:

ちなみに、Discourse は素晴らしいです。

「いいね!」 2

その問題も、少し経てばローカルダウンロードで修正されます。

「いいね!」 2

うーん、このサムネイルは今は表示されていますが、私がサポートしている Discourse ではまだ表示されていません…

この問題は以下のコミットで修正されました:

「いいね!」 3

ありがとうございます、@techAPJ。アップデートを取得するために何かする必要がありますか?

最新バージョンに更新すれば十分です。

「いいね!」 2