Grails 2不提供静态资源

时间:2012-09-09 21:17:46

标签: static grails-2.0

我正在使用Grails 2.0.4并希望提供一些静态资源,例如图片或视频。

我在images / grails_logo.png中有pils版本的grails徽标(像往常一样)。如果我输入网址'http:// localhost:8080 / TmmWeb / static / images / grails_logo.png',它会显示此徽标。

但是如果我输入'http:// localhost:8080 / TmmWeb / static / images / grails_logo.jpg'(还有一个旧徽标的jpeg版本),该应用程序会显示404报告“请求的资源()不可用。“。

如果我创建一个子目录'videos',并将adhoc模式的配置行更改为grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*','/videos/*'],那么url'http:// localhost:8080 / TmmWeb / static / images / grails_logo.png '投诉也失败了。

如果我将adhoc模式设置为null grails.resources.adhoc.patterns = [],那么像'http:// localhost:8080 / TmmWeb / videos / grails_logo.png'这样的网址会工作并传送内容。

那么,为什么只使用adhoc过滤器,只能从图像目录提供.png文件,而不是从视频目录提供,而且不能提供.jpg文件?

由于这些网址失败,因此在使用这些网址时,在网页中嵌入图片或视频也会失败。

我还应该注意到,最终我希望能够访问整个视频目录,而无需将每个视频输入资源声明。

1 个答案:

答案 0 :(得分:1)

这里的答案变得相当复杂。新的1.2版本的Resources插件在其用户指南中包含完整的说明。

简而言之,ad-hoc过滤器允许的项目将收到对/ static URI网站空间下相应项目的重定向响应。

web-app基本目录下的任何文件都将在/ static URI webspace下的相应位置提供,即使它们未在ad-hoc模式过滤器中列出。

此行为适用于1.1.x和1.2版本的Resources插件。它与正在使用的Grails版本无关。