2

assets/schemas/resource.jsonGrails 3 サービスにある静的リソースのパスを取得する必要があります。

現時点では次のように定義されています。

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

これはdevelopment環境には問題ありませんが、もちろん本番環境には適していません ( <app_root>/assets/resource.json.

私の場合、Asset Pipeline を悪用する方法を検索しようとしましたが、今のところまったくわかりません :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: そのようなプロパティはありません: クラスの byteArray: 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 に答える