Grails 2.3.7アプリケーションに、特定のシナリオのリンクのアプリケーションコンテキストがありません。私が開発している間は、すべてうまくいきます。アプリケーションをTomcat 8にデプロイし、またはcreate-drop
というデータソースでdbCreate
で起動すると、すべて正常に動作しています。しかし、Tomcatを再起動(または再デプロイ)し、データソース内のdbCreateをnone
に設定すると、アプリケーションコンテキスト内でリンクが生成されます。 は、私が開発中とdbCreate="create"
リンク/application/controller/action
として生成されますが、再起動リンクが/controller/action
として生成された後dbCreate="none"
を使用した場合、application
一部が欠落しているため、リンクのターゲットを見つけることができませんを使用している場合、リンクを作成する<g:link controller="controller" action="action">Link Text</g:link>
を使用しています。 CSSファイルなどのアセットの場合、application
部分を含めて、リソースのリンクが正しく生成されます。 Config.groovyにgrails.app.context
とgrails.serverURL
を設定しようとしましたが、成功しませんでした。この問題を解決するためのヒントに感謝したいと思います。 (SOを検索すると、反対の方向の質問が返され、リンクのアプリケーション部分を省略する方法を尋ねると、これは私の望むものではありません)Grails Appに再デプロイメント後のリンクのアプリケーションコンテキストがありません
更新:tomcat、 grails run-app
を実行しているときと同じ動作があります。
アップデート:私は展開の戦争でもrun-app
、prod run-app
とでこれを再現することができますが、エラーは、Webアプリの2 3の開始時に、多分、毎回発生しませんので、私はそれがタイミングの問題かもしれないと思いますサーブレットのコンテキストでは、私はまだもっと知りません。
Upadte:デバッグでは、DefaultLinkGenerator
で、contextPath
は空の文字列と同じですが、nullまたは 'application'である必要があります。
更新:grails bean grailsLinkCreator
は、アプリケーションの起動時に正しくインスタンス化されます。このBeanはCachingLinkGenerator
に実装され、そのスーパークラスはDefaultLinkGenerator
です。起動時にはいつでも、このBeanの作成と初期化後に、変数contextPath
がDefaultLinkGenerator
に空のStringに設定されますが、どこから、いつ、いつ、なぜかわかりません。
潜在的な解決策へのリンクは常に歓迎ですが、そう、あなたの仲間を(// meta.stackoverflow.com/a/8259)[リンクの周りのコンテキストを追加]してくださいユーザーはそれが何であるか、なぜそれが存在するのか、いくつかの考えを持っています。ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください。外部サイトへのリンク以上のものがあることを考慮に入れてください。なぜ、どのように答えが削除されますか?(// stackoverflow.com/help/deleted-answers)という理由が考えられます。 – FrankerZ
@FrankerZヒントのおかげで、あなたの提案に基づいて私の答えを編集しました。 – Calon