いくつかの Grails プラグインを取り込む Grails アプリがあります。これらのプラグインは、私自身だけでなく、他のいくつかの Grails アプリで再利用する必要があります。
Grails プラグインのいずれかの Resources Bundle で、次のように定義しています: 完全を期すためにこれを残していますが、その後 Asset-Pipline に切り替えました
modules = {
directivea {
resource url: 'directives/directivea/directivea.js'
resource url: 'services/restapis.js'
}
}
プラグインの 1 つの Javascript ファイルで、次のディレクティブを定義しています。
ModuleA.directive('directivea',function() {
return {
restrict: 'EA',
scope: {
'objId' : '='
},
replace: true,
link: function(){
$scope.ObjId = attributes[''];
$scope.someFunction($scope.ObjId);
},
controller: function(){
$scope.someFunction = function(objId){
//some stuff happens here
};
},
templateUrl: 'directives/directivea/directivea.html'
}
});
コントローラーを正常に実行しているように見えますが、テンプレートを取り込もうとすると、チョークします。
GET /appname/directives/directivea/directivea.html 404 (見つかりません)
部分的なテンプレートが配置される場所ではないため、これは理にかなっています。しかし、それはどこでしょうか?その情報をプラグイン内に隔離しながら、すべてのダウンストリーム アプリケーションで使用できるようにするにはどうすればよいですか? 可能であれば、インライン テンプレートの定義は避けたいと思います。
**構造を含めるように編集**
プラグインの構造:
- grails アプリ
- conf
- PluginNameForGrailsResources.groovy
- BuildConfig.groovy
- コントローラー
- PluginControllerA.groovy
- PluginControllerB.groovy
- ドメイン
- PluginDomainA.groovy
- conf
- ウェブアプリ
- CSS
- ディレクティブ
- 指令
- ディレクティブa.js
- ディレクティブa.html
- 指令
- サービス
- restapis.js
- アプリケーションのプロパティ
- PluginNameForGrailsGrailsPlugin.groovy
私のプラグインを参照するアプリケーションの構造:
- grails アプリ
- conf
- BuildConfig.groovy
- コントローラー
- ドメイン
- ビュー
- レイアウト
- main.gsp
- index.gsp (リソース r:require タグによるディレクティブへの参照)
- レイアウト
- ウェブアプリ
- CSS
- main.css
- js
- index.js
- アプリケーションのプロパティ
**構造 POST-ASSET-PLUGIN-SWITCHOVER を含めるように編集** これ以上リソースが定義されていないため、BuildConfig.groovy はリソースの代わりにアセット パイプラインを参照するようになり、web-app 内のファイルはなくなりました
- grails アプリ
- conf
- BuildConfig.groovy
- コントローラー
- PluginControllerA.groovy
- PluginControllerB.groovy
- ドメイン
- PluginDomainA.groovy
- 資産
- JavaScript
- 指令
- ディレクティブa.js
- ディレクティブa.html
- サービス
- restapis.js
- 指令
- アプリケーションのプロパティ
- PluginNameForGrailsGrailsPlugin.groovy
- JavaScript
- conf