我正在使用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文件?
由于这些网址失败,因此在使用这些网址时,在网页中嵌入图片或视频也会失败。
我还应该注意到,最终我希望能够访问整个视频目录,而无需将每个视频输入资源声明。
答案 0 :(得分:1)
这里的答案变得相当复杂。新的1.2版本的Resources插件在其用户指南中包含完整的说明。
简而言之,ad-hoc过滤器允许的项目将收到对/ static URI网站空间下相应项目的重定向响应。
web-app基本目录下的任何文件都将在/ static URI webspace下的相应位置提供,即使它们未在ad-hoc模式过滤器中列出。
此行为适用于1.1.x和1.2版本的Resources插件。它与正在使用的Grails版本无关。