我需要在Grails 3服务中获取位于assets/schemas/resource.json
的静态资源的路径。
目前定义为
private final String SCHEMA = 'grails-app/assets/schemas/resource.json',
适用于development
环境,但当然不适合生产(因为它位于<app_root>/assets/resource.json
。
我试图在我的案例中搜索如何利用资产管道,但到目前为止我真的不知道:P
提前致谢!
答案 0 :(得分:5)
它在本地运行,但在部署到服务器时则不行。使用Grails 3.1.0,Java 1.8.0_91和Tomcat 8.0.33。
assetResourceLocator?.findAssetForURI('myFolder/placeholder.jpg')?.byteArray
返回
groovy.lang.MissingPropertyException:没有这样的属性:class的byteArray:org.springframework.web.context.support.ServletContextResource
编辑:解决了它:
assetResourceLocator?.findAssetForURI('myFolder/placeholder.jpg')?.getInputStream()?.bytes
答案 1 :(得分:1)
文档中介绍了它。 http://bertramdev.github.io/grails-asset-pipeline/guide/usage.html
在控制器或服务中,注入assetResourceLocator
并使用assetResourceLocator.findAssetForURI()
答案 2 :(得分:0)
完整示例:
class ExampleService {
def assetResourceLocator
def someMethod() {
Resource res = assetResourceLocator.findAssetForURI('test.css')
String url = res.getURL()
String uri = res.getURI()
}
}
来源:http://bertramdev.github.io/grails-asset-pipeline/guide/usage.html