如果您不使用 Asset-Pipeline,您可以按照以下步骤将静态资源映射到 URL:Grails 文档 https://grails.github.io/grails-doc/latest/guide/single.html#urlmappings。但是,您的问题是如何将单个资源映射到单个 URL资产管道插件 https://grails.org/plugin/asset-pipeline.
伯特·贝克威斯 (Burt Beckwith) 提供了有关Grails 论坛 http://grails.1312388.n4.nabble.com/url-mapping-to-image-td4636402.html几年前关于 Grail 在提供静态资源方面的作用。
Grails 不提供静态资源,而容器提供服务。因此,无法直接配置映射 - 您需要通过控制器提供服务或按照 Eric 的建议配置代理。
Burt
这个答案可能并不令人满意。但是,如果您必须提供静态资源并且绝对不想使用控制器或代理,您可以尝试以下操作。
创建一个名为 image.gsp 的视图。该视图将仅包含资产标签。使用上面的例子,
<asset:image src="t1.png"/>
然后配置您的 URL 映射以指向image.gsp
page.
class UrlMappings {
static mappings = {
...
"/t1.png" (view: "image")
...
}
}
我认识到这可能不是您希望使用的确切方法。但我认为,了解 Grails 所扮演的角色以及运行 Grails 的容器将有助于做出正确为用户提供资源的决定。
我知道这可能看起来无关,但如果您想创建一个列出目录内容的页面,请查看此由 CodePanda 发表 https://fbflex.wordpress.com/2008/11/26/a-simple-grails-controller-for-file-management/。他的代码可以用作创建控制器来服务单个文件的模板,并且他解释了如何更新视图、控制器和 groovy.config。