php エディター Baicao は、nixOS で Nginx リバース プロキシを使用すると、時々問題が発生することを紹介しました。css/js をロードしようとすると 404 エラーが返されるということです。この問題により、Web サイトのスタイルと機能が正しく表示されなくなる可能性があります。この問題を解決するには、Nginx 構成とファイル パスが正しいかどうかを確認し、プロキシ サーバーが必要な静的リソースに正しくアクセスしてロードできることを確認する必要があります。慎重なトラブルシューティングとデバッグを通じて、この問題を解決し、Web サイトの正常な動作を保証します。
Dockerコンテナのリバースプロキシとしてnginx
を実行するためにnixos
を設定しました。関数を使用して /
を処理し、2 つのフォルダー static
と js
からファイルを返す Docker コンテナーで golang
サーバーを実行します。ポート 8181 で実行されます。コードは次のとおりです:
私のアプリケーションの構造は次のとおりです。
リーリーconfiguration.nix
の nginx
部分の構成は次のとおりです。
https://server/myapp
にアドレスすると、index.html
は読み込まれますが、style.css
と htmx は読み込まれます。 js
は 404 を返します。
URL (http://server:8181
) ではなくポート 8181 を使用してコンテナーがアドレス指定されている場合、すべてが通常どおりロードされます。
nginx が CSS と JS をコンテナにロードするリクエストをリダイレクトしたいと考えています。
######編集:### 正確なエラーは次のとおりです。https://server.name/myapp## にアクセスしているにもかかわらず、get https://server.name/static/style.css net::err_aborted 404 #。
もう 1 つの重要な情報は、同じリバース プロキシを介して複数のコンテナをこの方法で実行したいということです。したがって、すべての css
ファイルまたは
ファイルを同じ場所に指定しても機能しません。 解決策
簡単な解決策は、相対パスに置き換えることです:
リーリー
この方法ではエラーが発生しやすくなります。より良いアプローチは、
:
でコンテンツを提供するようにアプリケーションを変更することです。 リーリーそして、index.html
ファイル内の参照パスを変更します:
次に、nginx 構成を変更します:
リーリー
このアプローチでは、リバース プロキシが使用されているかどうかに関係なく、Web アプリケーションは常に uri
で提供されるため、保守が容易になります。
以上がnixOS 上の Nginx リバース プロキシが css/js をロードしようとすると 404 を返すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。