Next.js(app router)のフロントエンドページに対してhonoで作成したリバースプロキシーサーバーを置きたい。 #3259
Unanswered
wimpykid719
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Cloud Runに Next.jsとRailsのAPIをデプロイしています。東京リージョンのCloud Runインスタンスにカスタムドメインを当てるとレイテンシーが増加する問題があります。
これを回避するためにcloudflare workerにデプロイしたリバースプロキシーサーバにカスタムドメインを当ててそこに来たリクエストに対してインスタンスへのリクエストを捌きたいです。
下記のように実装したのですが、フロントエンドにリクエストを飛ばした際、レスポンスとしてページが来ないです。サーバのログを見るとリクエスト自体は到達していますが、レスポンスが上手くいきません。
どのように実装したら良いでしょうか。助けて頂けると幸いです。
ブラウザのコンソールに
(failed)net::ERR_CONTENT_DECODING_FAILED
というエラーが出ています。ただステータスコードは200です。
追記
このようにする事でDOMはレンダリングされるようになったのですが、cssが当たっていないためレイアウトが崩れています。
原因はcssを読み込む際にcontent-typeがhtmlになっているからなのですが、リクエスト毎にcontent-typeを条件分岐で判定してreturnさせないといけないのでしょうか。
返ってきた物をそのまま良い感じ返せないのでしょうか。htmlではc.html() cssでは別の方法でとなると冗長な気がします。
honoではResponseオブジェクトを渡せばcontent-typeに合わせて適切なレスポンスを返すようになってないのでしょうか。
追記2
content-encoding
が原因みたいでした。これをresponseヘッダーから削除する事でページ表示する事ができました。content-encodingが指定される事で解凍済みのレスポンスに対してgzipの解答を実行していてエラーになっていました。
ここはレスポンス時に回答せずに再度圧縮して返すようにしたいです。
Beta Was this translation helpful? Give feedback.
All reactions