gpt4 book ai didi

grails - UrlMappings 将 URL 指向 Grails 中的 Assets 管道文件

转载 作者:行者123 更新时间:2023-12-04 12:57:47 25 4
gpt4 key购买 nike

在 Grails 3.0 中,如何将 URL 映射到 assets 下的文件文件夹?

例如:http://localhost:8080/favicon.ico --> grails-app/assets/images/bookmark.ico
我尝试了一些测试映射,例如:

grails-app/controllers/UrlMappings.groovy

class UrlMappings {

static mappings = {
...
"/t1.png" (uri: "/assets/images/test.png")
"/t2.png" (uri: "/assets/test.png")
"/t3.png" (uri: "/images/test.png")
"/t4.png" (dir: "assets/images", file: "test.png")
...
}

}

...但它们都会导致 500 服务器错误。

最佳答案

如果您没有使用 Asset-Pipeline,您可以按照 Grails Documentation 中列出的步骤将静态资源映射到 URL。 .但是,您的问题是询问如何使用 Asset-Pipeline plugin 将单个资源映射到单个 URL。 .
Burt Beckwith 提供了有关 Grails forum 的见解几年前关于 Grail 在服务静态资源方面的作用。

Grails doesn't serve static resources, the container does. So there's no way to directly configure a mapping - you need to serve it through a controller or configure a proxy as Eric suggests.

Burt


这个答案可能并不令人满意。但是,如果您必须提供静态资源并且绝对不想使用 Controller 或代理,则可以尝试以下操作。
创建一个名为 image.gsp 的 View 。该 View 将仅包含 Assets 标签。使用上面的例子,
<asset:image src="t1.png"/>
然后配置您的 URL 映射以指向 image.gsp页。
class UrlMappings {

static mappings = {
...
"/t1.png" (view: "image")
...
}

}
我承认这可能不是您希望使用的确切方法。但我认为,了解 Grails 所扮演的角色与运行 Grails 的容器将有助于做出正确地为用户提供资源的决定。
我知道这可能看起来无关,但如果您想创建一个列出目录内容的页面,请查看此 post by CodePanda .他的代码可以用作模板来创建一个 Controller 来为单个文件提供服务,他解释了如何更新 View 、 Controller 和 groovy.config。

关于grails - UrlMappings 将 URL 指向 Grails 中的 Assets 管道文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31441643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com