1

http://host.foo.loc:8080/foo/として直接アクセスするか、http: //www.company.com/apps/foo/として安全なリバースプロキシを介してアクセスできるWebアプリケーションがあります。

デフォルトでは、Grailsは相対パスを使用して相対URLを生成します。次に例を示します。

<g:form action="bar">

生成されます:

<form action="/foo/bar" method="post" >

これはローカルでは問題ありませんが、リバースプロキシはhttp://www.company.com/foo/barを受け入れません(/ apps /がありません)

私が行った場合:

<g:form action="bar" base=".">

大丈夫だよ。しかし、リンクを生成するすべてのタグにそれを指定したくはありません。

これに対処する最善の方法は、Grailsに相対URLで相対パスを生成させることです。または、グローバルな「baseUrl」を「。」に設定して生きることもできます。しかし、私もそれを行う方法がわかりません。

何か案が ?

[編集]実際、「ベース」を「。」に設定します。動作しません。最初のページ「/foo/ controller / action」は、リンクを「./controller/nextaction」として生成します。これは、ブラウザーが「/ foo / controller / controller /action」=>404として変換します。これが理由だと思います。絶対パスの再使用:パスではありません。

4

2 に答える 2

1

この種のシナリオを機能させることはできなかったので、プロキシされたコンテキストパスとプロキシされていないコンテキストパスを常に同じに保ちます。つまり、アプリをに配置しhttp://host.foo.loc:8080/apps/fooます。WARファイルに名前を付けることで、Tomcatでこのようなマルチレベルのコンテキストパスを作成できますapps#foo.war

于 2012-08-01T15:33:40.197 に答える
0

に追加grails.app.context = "/foo/bar"しますConfig.groovy

于 2012-08-01T15:39:25.830 に答える