次のような URL でアプリケーションを実行しています。
/myapp
URLの一部は必要ありません。では、どうすればアプリケーション名を取り除くことができますか? 私はただ欲しい
URLになります。これどうやってするの?
次のような URL でアプリケーションを実行しています。
/myapp
URLの一部は必要ありません。では、どうすればアプリケーション名を取り除くことができますか? 私はただ欲しい
URLになります。これどうやってするの?
少し詳細なアプローチ
最初の方法:
最初に tomcat を [bin ディレクトリから ( )] シャットダウンしてから、
sh shutdown.sh
Tomcat webapps フォルダー ( ) のすべてのコンテンツを削除し、rm -fr *
WAR ファイルの名前を変更して、[bin ディレクトリから ( )]ROOT.war
Tomcat を起動します。sh startup.sh
2 番目の方法:
war ファイルを
CATALINA_BASE/webapps
元の名前のまま .server.xml ファイルの Host 要素で autoDeploy と deployOnStartup をオフにします。パスと docBase の両方を指定して、server.xml ですべてのアプリケーション コンテキストを明示的に定義します。すべての Tomcat 自動展開メカニズムを無効にしており、Tomcat は server.xml で Context を検出しない限りアプリケーションを展開しないため、これを行う必要があります。
ノート:
この最後の方法は、アプリケーションを変更するには、Tomcat を停止して再起動する必要があることも意味しています。
3 番目の方法:
war ファイルを の外部に配置します
CATALINA_BASE/webapps
(二重展開を防ぐために外部に配置する必要があります)。- という名前のコンテキスト ファイルを配置しROOT.xml
ます
CATALINA_BASE/conf//
。このコンテキスト ファイルの 1 つの要素には、war ファイルの場所を指す docBase 属性が必要です。path 要素は設定しないでください。この場合は、.xml ファイルの名前から派生しますROOT.xml
。詳細については、上記のコンテキスト コンテナーを参照してください。
1)アプリサーバーは、grailsアプリケーションをROOTアプリケーションとして使用できるように構成する必要があります
2)grailsアプリケーションのコンテキストパスは「/」またはapp.context=/である必要があります
単に名前を付けることで、Tomcat にルート コンテキストとして Web アプリケーションを提供させることができますROOT.war
。つまり、myapp-0.1.war
Grails によって生成されたものを にコピーしTOMCAT_DIR/webapps/ROOT.war
ます。
の設定がある場合は、Grails によって生成された絶対リンクが正しいことを確認するために、本番環境用にこれをオーバーライドする必要がありますgrails.serverURL
。Config.groovy
environments {
production {
grails.serverURL = 'http://myapp.mydomain.com'
}
}
しかし、Grails 2 では通常、grails.serverURL
完全に省略して実行時にアプリに正しい値を推測させることが安全です。Host
正しいヘッダーを通過しないリバース プロキシの背後で実行している場合にのみ必要です。