3 つの Grails 2.x プロジェクトがあります。この例では、次のとおりです。
ProjectCore - A Grails plugin containing all reusable code (domains, taglibs, etc)
ProjectWeb - Front facing web application. Uses ProjectCore
ProjectAdmin - Admin appliction. Uses ProjectCore
ほとんどすべての画像、js、taglib、サービスなどは ProjectCore にあり、個々のプロジェクトにはアプリ固有のコントローラー/ビュー/サービス/js/css のみがあります。
NetBeans を IDE として使用すると、すべてがローカルで正常に動作します。ProjectAdmin プロジェクトを作成し、Tomcat 6 を実行している Ubuntu サーバーに展開しました。1 つの画像 avatar.png (ProjectCore アプリに含まれています) を除いて、アプリケーション内のすべてが期待どおりに機能しています。
g:resource タグを使用してすべての画像リンクを作成していますが、この 1 つの画像を除いて、それらはすべて /static/images/some_image_name.png URL に正しく解決されています。また、この画像が戦争中に存在することも確認しました (他のすべての画像がある plugins/ProjectCore/images にあります)。
この特定の画像では、ユーザーが自分のアバターをアップロードしていない場合、taglib (AvatarTagLib) を使用してこの画像へのリンクを作成しています。この Taglib は ProjectRoot にありますが、他のプロジェクトから呼び出されています。他の画像は特定のプロジェクト内のビューから呼び出されていると思われるため、ハングアップが発生している可能性があります。
最初にアプリケーションをデプロイしたとき、war (およびそれを含むディレクトリー) の所有権を tomcat6:tomcat6 に変更するのを忘れていたため、このイメージだけでなく、SpringSecurityPlugin の messages.properties ファイルにも問題がありました。私はそれをすべて一掃し、アクセス許可を修正しました。これにより、この問題を除くすべての問題が解決されました。
誰かが以前にこの動作に遭遇したことがありますか、またはこれを整理するために私がたどることができる他の道を知っていますか?
編集:言及するのを忘れたことが1つあります。http://admin.mydomain.com/images/avatar.pngまたはhttp://admin.mydomain.com/static/images/avatar.pngを介して画像に直接アクセスしようとすると、どちらも 404 を返します。ただし、 、この方法で他の画像にアクセスできます。
編集 2 : これは単一の画像に限定されません。プラグインに含まれる画像の約半分が影響を受けています。