1. ホーム
  2. grails

[解決済み] grails 2.0 - productionのためのserverURLの正しい使用?

2022-02-16 09:20:19

質問

Grails 2.0では、開発環境とテスト環境でgrails.serverURLを使用する方法が変更されました( マニュアル ). しかし、私はいくつかの 問題点 Tomcatの本番環境でのデプロイメントに関して、serverURLについて。 serverURL(本番モード)にはいくつかのオプションがあるようです。

  • (追記)TomcatとJettyには、アプリのURLをどのように扱うかを、"App"レベルまで制御する方法があるので、この設定は単なる煙と鏡に過ぎません。

  • サーバーを指定するために使います(Config.groovyで"TODO"として指摘されています)。

  • 表示されているように使用しないでください こちら つまり、serverURLプロパティを削除し、Grailsに現在実行中のアプリからの相対的なURLを生成させることは常に安全であるべきだということです。

  • 代わりに別の方法、すなわちgrails.app.contextを使用します。これはGrails 2.0マニュアルには記載されていませんが、特定のリファレンスで説明されています。 ここで こちら .

JettyとTomcat(本番モード)の両方で、serverURLとapp.contextの正しい使い方を明確にすることができますか?

ありがとうございます。

解決方法は?

つまり、grails.serverURL設定パラメータの基本的な考え方は、絶対リンクを作成する際に、createLinkメソッドにどのようなURLが必要かを認識させることです。もしgrails.serverURL設定パラメータが指定されていない場合、デフォルトでは http://localhost:8080 (server.portが指定されていない場合は8080が使われます) ...

アプリケーションコンテキストは、Jetty/Tomcatにアプリケーションを別のルートで実行するように指示します。例えば

grails.app.context="/myApp"

は、アプリケーションのルートを "/myApp" に設定します。運用モードでは、アプリケーションのコンテキストはウェブコンテナによって処理され、このディレクティブは無視されます。アプリケーションを別のコンテキストで実行するように、本番環境のjettyやtomcatインスタンスを設定するかどうかは、技術的な要件に完全に依存します。

つまり、考慮すべきは、あなたのアプリケーションでは、GSPで多くの絶対リンクを作成し、サーバーURLを定義する必要があるのでしょうか?もしそうでなければ、指定する必要はありません。もしそうであれば、指定する必要があります。

個人的な好みですが、新しいgrailsプロジェクトを作成した後、私がいつも最初に行うことは、設定に入り、grails.app.contextを"/"に変更することです......。これは、私にとって、本番環境のミラーリングをより簡単にします。

これでスッキリするといいんだけどなー。