我有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服务器上。应用程序中的一切都按预期运行,除了一个图像:avatar.png(包含在ProjectCore应用程序中)。
我使用g:resource标记创建了所有的图片链接,它们都正确地解析为/static/images/some_image_name. png url,除了这张图片。我还验证了该图片存在于war中(位于plugins/ProjectCore/images,其他所有图片都在那里)。
对于这个特定的图片,如果用户没有上传头像,我会使用一个标记库(AvatarTagLib)来创建到这个图片的链接。这个标记库在ProjectRoot中,但是正在从其他项目中调用。我相信其他图片是从特定项目中的视图中调用的,所以这可能是问题所在。
最初部署应用程序时,我忘了将war的所有权(以及包含目录)更改为tomcat 6:tomcat 6,因此我遇到的问题不仅限于此图像,还包括SpringSecurityPlugin中的messages.properties文件。我清除了所有这些文件,修复了权限,这样就解决了除此之外的所有问题。
有没有人遇到过这种行为之前,或知道任何其他途径,我可以去整理这个?
Edit:有一件事我忘了提一下。当我尝试直接访问图像时,无论是通过http://admin.mydomain.com/images/avatar.png还是http://admin.mydomain.com/static/images/avatar.png,都返回404。但是,我可以通过这种方式访问其他图像。
编辑2:这并不局限于一张图片。它影响了插件中大约一半的图片。
5条答案
按热度按时间vi4fp9gy1#
升级资源插件为我修复了这个问题。我用
runtime ":resources:1.2.RC2"
更新了BuildConfig.groovy
gjmwrych2#
尝试将资源插件升级到1.2-RC 1。
我也遇到过类似的问题,我的png中有3个在直接访问/images和/static/images时会返回404错误。这些图像分别被命名为dot.png、calendar.png和dotted_vertical. png。如果我重命名它们(例如dotted_vertical. png或dotted_vertical 1. png),它们可以正常工作,但我找不到任何其他的相似之处或模式。
sxpgvts33#
如果不看代码,就不可能说真的。
1)你可能必须在插件中传递plugin= for resources 2)你试过r:resource吗?
如果您可以将其隔离到一个无关紧要的插件和应用程序,请创建一个jira
wpcxdonn4#
我也遇到过同样的问题。
我在BuildConfig.groovy中将资源插件(runtime“:resources:1.1.6”)改为webxml插件(compile“:webxml:1.4.1”)解决了这个问题,现在它可以正常工作了。
我希望它对你也有用。
jyztefdp5#
已解决更改文件权限的问题