2

我需要获取位于assets/schemas/resource.jsonGrails 3 服务中的静态资源的路径。

目前它被定义为

private final String SCHEMA = 'grails-app/assets/schemas/resource.json',

这对development环境很好,但当然不适用于生产(因为它位于<app_root>/assets/resource.json.

我试图搜索如何在我的案例中利用资产管道,但到目前为止我真的不知道:P

提前致谢!

4

3 回答 3

7

它在本地工作,但在部署到服务器时不起作用。使用 Grails 3.1.0、Java 1.8.0_91 和 Tomcat 8.0.33。

assetResourceLocator?.findAssetForURI('myFolder/placeholder.jpg')?.byteArray

返回

groovy.lang.MissingPropertyException:没有这样的属性:类的字节数组:org.springframework.web.context.support.ServletContextResource

编辑:解决了:

assetResourceLocator?.findAssetForURI('myFolder/placeholder.jpg')?.getInputStream()?.bytes
于 2016-07-21T13:44:20.723 回答
2

它包含在文档中。 http://bertramdev.github.io/grails-asset-pipeline/guide/usage.html

在控制器或服务中,注入assetResourceLocator并使用assetResourceLocator.findAssetForURI()

于 2016-04-07T15:24:03.880 回答
1

完整示例:

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

于 2016-09-22T14:48:08.007 回答