misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
9.97k stars 1.35k forks source link

Enabling `disableShowingAnimatedImages` breaks all images. #9409

Closed caipira113 closed 1 year ago

caipira113 commented 1 year ago

💡 Summary

If you enable the "Don't play animated images" option in the settings, all images will have incorrect proxy paths and will not be able to be loaded properly.

🥰 Expected Behavior

When enabled, all images should be processed with the correct proxy path and the image should be visible.

🤬 Actual Behavior

All affected images cannot be loaded because the proxy path for the image is incorrect.

Expected proxy url: https://example.com/proxy/thumbnail-022037a4-d683-41a2-9308-c37a362d8c92.webp?url=https%3A%2F%2Fcdn.example.com%2FD1%2Fthumbnail-022037a4-d683-41a2-9308-c37a362d8c92.webp&static=1 Actual proxy url: https://example.com/proxy/cdn.example.com/D1/thumbnail-022037a4-d683-41a2-9308-c37a362d8c92.webp?url=https%3A%2F%2Fcdn.example.com%2FD1%2Fthumbnail-022037a4-d683-41a2-9308-c37a362d8c92.webp&static=1

📝 Steps to Reproduce

  1. Go to Settings -> General.
  2. Enable the "Don't play animated images" option.
  3. Refresh the page.

📌 Environment

Misskey version: v13.0.0-alpha.10 Your OS: Windows 11 Pro Insider Preview 25267 Your browser: Microsoft Edge Dev 110.0.1556.0

tamaina commented 1 year ago

htmlが返ってきてるのでFastifyのせいかな?

tamaina commented 1 year ago

とはいえスラッシュが直接入っているのは微妙なのでクライアントのコードも直すか

AlfredSK commented 1 year ago

Looks like this isn't fixed for my setup. I'm using Apache as proxy to serve Misskey.

When I enable the user setting "don't play animated images" user avatars are broken (image missing) and all image previews in notes are blurred. When I disable the user setting "don't play animated images" all images are displayed correctly.

This issue didn't exist with Misskey 12.x.

Misskey 13.1.6 Node.js 18.13 PostgreSQL 14 Apache 2.4.52

Proxy config in Apache virtual host:

...
...
AllowEncodedSlashes On

#Proxy and ReverseProxy config
ProxyPreserveHost On
ProxyRequests Off
ProxyPass "/streaming" "ws://localhost:3000/streaming"
ProxyPassReverse "/streaming" "ws://localhost:3000/streaming"
ProxyPass "/" "http://localhost:3000/"
ProxyPassReverse "/" "http://localhost:3000/"
...
...