misskey-dev / misskey

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

リノート用ページなどを直接表示するとjsonしか見えない場合がある? #14969

Open Sayamame-beans opened 1 week ago

Sayamame-beans commented 1 week ago

💡 Summary

詳細把握しきれていないので補足お願いします…

(cloudflareによるキャッシュ等によって?)リノート用のページを直接表示した場合などにjsonだけが表示される場合がある?

別の発生例として、リノート等の通知から開いた画面において、"リモートで表示"すると<ノートリンク>/activityが開かれ、そのためにjsonしか出ないのもあるようです。これとは別の原因で起こるものもあるということだと思っていますが、これのことだったりしますか?

🥰 Expected Behavior

通常通り見える

🤬 Actual Behavior

jsonが表示される

📝 Steps to Reproduce

No response

💻 Frontend Environment

* Model and OS of the device(s): any
* Browser: any
* Server URL: any
* Misskey: any? (at least v2024.10.0)

🛰 Backend Environment (for server admin)

* Installation Method or Hosting Service:
* Misskey:
* Node:
* PostgreSQL:
* Redis:
* OS and Architecture:

Do you want to address this bug yourself?

KisaragiEffective commented 1 week ago

リノート等の通知から開いた画面において、"リモートで表示"すると<ノートリンク>/activityが開かれ、そのためにjsonしか出ないのもあるようです。

これ何回か踏んだけれど再現性がなく不明

fruitriin commented 1 week ago

content-application headerが変になると変になるかもという超エスパー

kakkokari-gtyih commented 1 week ago

content-application headerが変になると変になるかもという超エスパー

accept: application/activity+jsonなクライアントがデータを取りに来る→それをCFがキャッシュしてしまう みたいな現象かと

Image

こういうCache Ruleを置けば良さそう

Sayamame-beans commented 1 week ago

ちなみに"ノートURL/activity"のURLって何が表示されることが想定されています?

GrapeApple0 commented 1 week ago

(参考になるかは分かりませんが)cfなしの環境でもこうなるのでcfは関係ないと思います

GrapeApple0 commented 1 week ago

(参考になるかは分かりませんが)cfなしの環境でもこうなるのでcfは関係ないと思います

ここのリモートを見るから再現できます(misskey.04.siはcf未使用です) https://mi.starlamp.su/notes/a0nmp26btgvk2jnj

samunohito commented 1 week ago

@GrapeApple0 ヒントありがとうございます。

自分の手元でも再現出来ましたので手順を記載します。

サーバAとサーバBにそれぞれアカウントがあったとして… (サーバAのアカウントからサーバBのアカウントをフォローしてノートが連合される状態にあること前提)

  1. サーバAのTLを開く
  2. サーバBでノートを投稿
  3. サーバBで2のノートをリノート
  4. サーバAのTLに2と3があることを確認する
  5. サーバA側にある3からURLを取得(メニューからリノートのリンクをコピーで可能)
  6. 別タブなどでコピーしたURLを開く
  7. 「リモートで表示」をクリック ※このときリンク先が"https://[domain]/notes/[id]/activity"みたいな形式になっている