2 CSS / JSミニフィアスアクションと連結をプレイします
-
12-12-2019 - |
質問
すべてのページスクリプトを1つのファイルに保持するための組み込みツールやプラグインはありますか? Play Mail Listでトピックを見つけましたが、それらのすべてがこの質問に対する答えがないことを見つけました。
さらに、Google Closureコンパイラが深くありますが、Framework開発者を除く誰もそれを働く方法については実際には知らないのが好きです。
何らかの方法で、少なくとも1つのファイル内のすべてのCSSを一緒に連結することができるいくつかのツールがある場合。
解決
閉鎖のドキュメントを読みましたか?それは言います:
「アプリ/アセット」に存在するJavaScriptファイルは、Google Closureコンパイラによって解析され、エラーや依存関係をチェックし、ビルド構成で有効になった場合は制限されます。
注:私はそれをチェックしませんでした。
他のヒント
私は、組み込みの資産コントローラの代わりとしてJavaScriptの連結、販売、gzippingを行うプラグインで取り組んでいましたが、私たちは私たちのアプリでそれを使っています。Play 2.2.1のために設定された、それはあなたを助けるでしょう。
href="https://githubs.com/edeustace/assets-loader"REL="noFollow"> https://github.com/edeustace/assets-loader
Playフレームワークに統合されたrequirejsを使用する必要があると思います。それは次のリンクに記載されています。
-
プレイ1.xシリーズのモジュールを見つけました。それは私たちが必要なものであるようです:
javascript / cssファイルを最小限に抑える "Press" Module
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ファイルには、細かいHTMLファイルに完全に表示されます。 GZIP HTTPリクエストを使用して結果のHTMLを送信すると、省略されていません(しかし常により良い)。