5

我有 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、标签库、服务等都在 ProjectCore 中,在各个项目中只有应用特定的控制器/视图/服务/js/css。

一切都在本地运行良好,使用 NetBeans 作为我的 IDE。我对 ProjectAdmin 项目进行了战争,并将其部署到运行 Tomcat 6 的 Ubuntu 服务器上。应用程序中的所有内容都按预期工作,除了 1 个图像:avatar.png(包含在 ProjectCore 应用程序中)。

我正在使用 g:resource 标记创建所有图像链接,并且它们都正确解析为 /static/images/some_image_name.png url,除了这张图像。我还验证了该图像存在于战争中(位于所有其他图像所在的 plugins/ProjectCore/images 中)。

对于这个特定的图像,如果用户没有为自己上传头像,我将使用 taglib (AvatarTagLib) 创建指向该图像的链接。此 Taglib 在 ProjectRoot 中,但正在从其他项目中调用。我相信其他图像是从特定项目中的视图中调用的,所以这可能是挂断的地方。

最初,当我部署应用程序时,我忘记将战争(和包含目录)的所有权更改为 tomcat6:tomcat6,所以我遇到的问题不仅是这个图像,还有来自 SpringSecurityPlugin 的 messages.properties 文件。我将其全部清除,修复了权限,并且解决了除此之外的所有问题。

以前有没有人遇到过这种行为,或者知道我可以采取的任何其他途径来解决这个问题?

编辑:我忘了提一件事。当我尝试通过http://admin.mydomain.com/images/avatar.pnghttp://admin.mydomain.com/static/images/avatar.png直接访问图像时,都返回 404。但是,我可以通过这种方式访问​​其他图像。

编辑 2:这不仅限于单个图像。它影响了插件中大约一半的图像。

4

4 回答 4

4

升级资源插件为我解决了这个问题。我更新BuildConfig.groovyruntime ":resources:1.2.RC2"

于 2012-12-06T11:21:13.333 回答
1

尝试将资源插件升级到 1.2-RC1。

我有一个非常相似的问题,我的 3 个 png 在 /images 和 /static/images 下直接访问时会返回 404 错误。这些图像被命名为 dot.png、calendar.png 和 dotted_vertical.png。如果我重命名它们(例如 dotted_vertica.png 或 dotted_vertical1.png),它们会起作用,但我找不到任何其他相似之处或模式。确实很奇怪。

于 2012-08-09T11:01:49.617 回答
0

没有看到代码就不可能说真的。

1)您可能必须为插件中的资源传递 plugin= 2)您是否尝试过 r:resource?

如果您可以将其隔离为一个微不足道的插件和应用程序,请创建一个 jira

于 2012-07-31T22:15:40.320 回答
0

我有同样的问题。

我解决了它在 BuildConfig.groovy 中将资源插件(运行时“:resources:1.1.6”)更改为 webxml 插件(编译“:webxml:1.4.1”),现在它正在工作。

我希望它也适合你。

于 2012-10-24T02:47:11.180 回答