Grails 2.xプロジェクトは3つあります。この例では、彼らは以下のとおりです。Grailsのリソース:イメージがWARに存在していても404です
ProjectCore - A Grails plugin containing all reusable code (domains, taglibs, etc)
ProjectWeb - Front facing web application. Uses ProjectCore
ProjectAdmin - Admin appliction. Uses ProjectCore
ほぼすべての画像、JS、タグライブラリ、サービス、などは、個々のプロジェクトにおける唯一のアプリケーションの特定のコントローラ/ビュー/サービス/のJS/CSSで、ProjectCoreです。
すべてがNetBeansをIDEとして使用してローカルで正常に動作します。私はProjectAdminプロジェクトを戦い、Tomcat 6を実行している私のUbuntuサーバーにそれを配備しました。アプリケーションのすべてが期待どおりに動作していますが、image:avatar.png(ProjectCoreアプリに含まれています)
私はすべての画像リンクを作成するためにg:resourceタグを使用していますが、これらの画像はすべて、/static/images/some_image_name.png URLに正しく解決されています。また、画像が戦争中に存在することも確認しました(プラグイン/ ProjectCore/imagesの他のすべての画像がある場所にあります)。
この特定の画像では、ユーザーがアバターをアップロードしていない場合、この画像へのリンクを作成するためにtaglib(AvatarTagLib)を使用しています。このTaglibはProjectRootにありますが、他のプロジェクトから呼び出されています。私は他のイメージが特定のプロジェクト内のビューから呼び出されていると信じているので、ハングアップがどこにあるのかもしれません。
最初にアプリケーションを配備したとき、私は戦争の所有権(およびディレクトリを含む)をtomcat6:tomcat6に変更するのを忘れていました。このイメージだけでなく、messages.propertiesファイルの問題もありました。 SpringSecurityPlugin。私はそれをすべて拭き取り、パーミッションを修正し、これ以外のすべての問題を解決しました。
これまでにこの動作に遭遇した人はいますか他のパスを知っている人がいますか?
:私は言及するのを忘れました。 http://admin.mydomain.com/images/avatar.pngまたはhttp://admin.mydomain.com/static/images/avatar.pngのいずれかを使用して直接画像にアクセスしようとすると、両方とも404が返されます。ただし、この方法で他の画像にアクセスできます。
編集2:これは単一の画像に限定されません。これは、プラグインに含まれる画像のおよそ半分に影響します。
あなたはあなたのタグに 'projectRoot'を渡していますか? –
@tomasいいえ私はそうではありません。私はg:resourceタグを意味すると思いますか?また、私はファイルへの直接アクセスに関する上記の編集を行った。 – aasukisuki