8

次のような URL でアプリケーションを実行しています。

http://myapp.mydomain.com/myapp

/myappURLの一部は必要ありません。では、どうすればアプリケーション名を取り除くことができますか? 私はただ欲しい

http://myapp.mydomain.com

URLになります。これどうやってするの?

4

3 に答える 3

7

少し詳細なアプローチ

最初の方法:

最初に tomcat を [bin ディレクトリから ( )] シャットダウンしてから、sh shutdown.shTomcat webapps フォルダー ( ) のすべてのコンテンツを削除し、rm -fr *WAR ファイルの名前を変更して、[bin ディレクトリから ( )] ROOT.warTomcat を起動します。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。詳細については、上記のコンテキスト コンテナーを参照してください。

于 2013-01-10T12:28:58.100 に答える
3

1)アプリサーバーは、grailsアプリケーションをROOTアプリケーションとして使用できるように構成する必要があります

2)grailsアプリケーションのコンテキストパスは「/」またはapp.context=/である必要があります

于 2013-01-10T11:44:56.943 に答える
1

単に名前を付けることで、Tomcat にルート コンテキストとして Web アプリケーションを提供させることができますROOT.war。つまり、myapp-0.1.warGrails によって生成されたものを にコピーしTOMCAT_DIR/webapps/ROOT.warます。

の設定がある場合は、Grails によって生成された絶対リンクが正しいことを確認するために、本番環境用にこれをオーバーライドする必要がありますgrails.serverURLConfig.groovy

environments {
  production {
    grails.serverURL = 'http://myapp.mydomain.com'
  }
}

しかし、Grails 2 では通常、grails.serverURL完全に省略して実行時にアプリに正しい値を推測させることが安全です。Host正しいヘッダーを通過しないリバース プロキシの背後で実行している場合にのみ必要です。

于 2013-01-10T12:14:43.560 に答える