は私がプレイFrameworkとAngularJsを持つアプリケーションのために、次のファイルを持っている:sbt-sassify
プラグインがcss
にそれらをコンパイルするようPlay Framework:アセットファイルで逆ルートを使用するにはどうすればよいですか?
app/views/index.scala.html
app/assets/app/app.js
app/assets/app/app.scss
app/assets/app/main/_main.scss
app/assets/app/main/main.controller.js
app/assets/app/main/main.html
app/assets/app/main/main.js
app/assets/components/navbar/navbar.controller.js
app/assets/components/navbar/navbar.directive.js
app/assets/components/navbar/navbar.html
scss
ファイルは、app/assets
です。他のビュー(js
とhtml
ファイル)もapp/assets
にありますが、公開することができます。
conf/routes
が含まれています。次のように
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
navbar.directive.js
は次のとおりです。
angular.module('quotesApp')
.directive('navbar',() => ({
templateUrl: 'components/navbar/navbar.html',
restrict: 'E',
controller: 'NavbarController',
controllerAs: 'nav'
}));
これは動作しません、conf/routes
で定義されているようtemplateUrl components/navbar/navbar.html
パスは、/assets/
前置する必要があるためファイル。
これを修正する正しい形式は何ですか?
navbar.directive.js
というファイルにプレフィックス/assets
をハードコードする必要がありますか?しかし、これは経路定義を変更するときに壊れるでしょう。
angular.module('quotesApp')
.directive('navbar',() => ({
templateUrl: '/assets/components/navbar/navbar.html',
restrict: 'E',
controller: 'NavbarController',
controllerAs: 'nav'
}));
私はビューapp/views/components/navbar/navbar.directive.scala.js
を作成する必要があります(これはのみroutes
機能を使用するための定型の多くになります):
@()
angular.module('quotesApp')
.directive('navbar',() => ({
templateUrl: @routes.Assets.versioned("components/navbar/navbar.html"),
restrict: 'E',
controller: 'NavbarController',
controllerAs: 'nav'
}));
他のソリューション?どういうふうに相対的な道でしょうか?