Grails3-获取服务中的资产路径
我需要获取Grails3服务中位于assets/schemas/resource.json中的静态资源的路径 目前它被定义为Grails3-获取服务中的资产路径,grails,asset-pipeline,grails-3.0,grails-services,Grails,Asset Pipeline,Grails 3.0,Grails Services,我需要获取Grails3服务中位于assets/schemas/resource.json中的静态资源的路径 目前它被定义为 private final String SCHEMA = 'grails-app/assets/schemas/resource.json', 这对于开发环境很好,但对于生产环境当然不好,因为它位于/assets/resource.json中 在我的案例中,我试图寻找如何利用资产管道,但到目前为止我真的不知道:p 提前谢谢 这在文档中有介绍。 在控制器或服务中,注入
private final String SCHEMA = 'grails-app/assets/schemas/resource.json',
这对于开发环境很好,但对于生产环境当然不好,因为它位于/assets/resource.json中
在我的案例中,我试图寻找如何利用资产管道,但到目前为止我真的不知道:p
提前谢谢 这在文档中有介绍。
在控制器或服务中,注入assetResourceLocator并使用assetResourceLocator.findAssetForURI文档中介绍了它。
在控制器或服务中,注入assetResourceLocator并使用assetResourceLocator.findAssetForURI,它在本地工作,但部署到服务器时不工作。使用Grails3.1.0、Java1.8.091和Tomcat8.0.33
assetResourceLocator?.findAssetForURI('myFolder/placeholder.jpg')?.byteArray
返回
groovy.lang.MissingPropertyException:没有此类属性:类的byteArray:org.springframework.web.context.support.ServletContextResource
编辑:解决它:
它在本地工作,但部署到服务器时不工作。使用Grails3.1.0、Java1.8.091和Tomcat8.0.33
assetResourceLocator?.findAssetForURI('myFolder/placeholder.jpg')?.byteArray
返回
groovy.lang.MissingPropertyException:没有此类属性:类的byteArray:org.springframework.web.context.support.ServletContextResource
编辑:解决它:
完整示例:
class ExampleService {
def assetResourceLocator
def someMethod() {
Resource res = assetResourceLocator.findAssetForURI('test.css')
String url = res.getURL()
String uri = res.getURI()
}
}
来源:完整示例:
class ExampleService {
def assetResourceLocator
def someMethod() {
Resource res = assetResourceLocator.findAssetForURI('test.css')
String url = res.getURL()
String uri = res.getURI()
}
}
来源:谢谢,我在开发中遇到了同样的问题,但在生产中没有。这个解决方案在Grails2.4.5中也适用于我!这里的输入流需要关闭吗?谢谢,我在开发中遇到了同样的问题,但在生产中没有。这个解决方案在Grails2.4.5中也适用于我!这里的输入流需要关闭吗?你是对的:我的问题的解决方案应该是assetResourceLocator.findAssetForURI'schemas/resource.json'.getURI或者.getURL,但后来我决定将我的json文件放在src/main/resources中,因为我真的不需要将它作为一个资产来管理,而是作为一个简单的资源来管理。你是对的:我的问题的解决方案应该是assetResourceLocator.findAssetForURI'schemas/resource.json'.getURI或.getURL,但后来我决定将json文件放在src/main/resources中,因为我真的不需要将其作为资产管理,而是作为一个简单的资源管理。