5

すべてのページ スクリプトを 1 つのファイルに保持する組み込みツールまたはプラグインはありますか? play メーリング リストでいくつかのトピックを見つけましたが、すべてこの質問に対する回答がありません。

さらに、Google クロージャー コンパイラーは奥深いところにありますが、フレームワーク開発者以外の誰もそれを機能させる方法を本当に知らないようです。

いずれにしても、少なくともすべての css を 1 つのファイルに連結できるツールがいくつかあれば、それは素晴らしいことです。

4

3 に答える 3

4

Closure のドキュメントを読みましたか? それは言います:

「app/assets」にある JavaScript ファイルはすべて、Google Closure コンパイラによって解析され、エラーと依存関係がチェックされ、ビルド構成でアクティブ化されている場合は縮小されます。

注:チェックはしていません。

于 2012-10-02T11:03:02.760 に答える
2

私は、組み込みの Assets コントローラーの代わりとして、javascript の連結、縮小、および gzip を実行するプラグインに取り組んでいました。アプリで使用しています。Play 2.2.1 用に設定されているので、参考になるかもしれません。

https://github.com/edeustace/assets-loader

于 2013-05-05T16:32:43.197 に答える
1

Play フレームワークに統合された RequireJS を使用する必要があると思います。次のリンクで説明しています: - Stackoverflow の質問 - Play フレームワーク RequireJS サポート

Play 1.x シリーズ専用のモジュールを見つけました。これは必要なものと思われます:

javascript/css ファイルの「press」モジュールを最小化する

私の Play 2.x プロジェクトでは、ビューを使用して複数の JavaScript ファイルを連結しました。縮小化を無効にしますが、JavaScript の再利用とファイル編成の点で非常に役立ちました。CSS の場合、このメソッドも使用できます。

JavascriptRoutes という名前のコントローラーがスクリプト コンテンツを取得し、それをテンプレートに配置します。

package controllers

import play.api.Play
import play.api.templates.Html

/**
 * Created by dnoz on 30/06/2014.
 */
object JavascriptRoutes {
  def javascriptRouter(scriptName :String): String = {
    val scriptFile = Play.getFile("app/assets/javascripts/" + scriptName)(Play.current)
    val bufferScriptFile = scala.io.Source.fromFile(scriptFile, "utf-8")
    val reformatedScriptContent = bufferScriptFile.mkString
    reformatedScriptContent
  }
}

スクリプト ビューの一部の例を次に示します。

<script type='text/javascript'>
$(function(){
  @Html(JavascriptRoutes.javascriptRouter("backboneClasses/StoredObject/storedObject.model.js"))
  @Html(JavascriptRoutes.javascriptRouter("backboneClasses/Form/form.view.js"))

  //script specific to the view itself:
  var toto = new Object;
  //...
});
</script>

そのため、スクリプトは最終的な HTML ファイルに完全に表示され、縮小されることはありません。gzip http リクエストを使用して結果の html を送信する場合、縮小することは必須ではありません (常により良い方法です)。

于 2014-05-17T08:47:44.463 に答える