Je veux jouer pour envoyer JS et CSS GZipped au navigateur. Dans le Build.scala, j'ai ajoutéPlay Framework 2.0.4 GZip
val gzipAssets = TaskKey[Seq[File]]("gzip-assets", "GZIP all assets")
lazy val gzipAssetsSetting = gzipAssets <<= gzipAssetsTask
lazy val gzipAssetsTask = (gzippableAssets, streams) map {
case (finder: PathFinder, s: TaskStreams) => {
finder.get.map { file =>
val gzTarget = new File(file.getAbsolutePath + ".gz")
IO.gzip(file, gzTarget)
s.log.info("Compressed " + file.getAbsolutePath + " " + file.length/1000 + " k => " + gzTarget.getName + " " + gzTarget.length/1000 + " k")
gzTarget
}
}
}
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
// Twitter Bootstrap v2.0.1 compilation (https://plus.google.com/u/0/108788785914419775677/posts/QgyUF9cXPkv)
lessEntryPoints <<= (sourceDirectory in Compile)(base => ((base/"assets"/"stylesheets"/"twitterbootstrap"/"styles.less"))),
// set up gzip of assets
gzippableAssets <<= (resourceManaged in (ThisProject))(dir => ((dir ** "*.js") +++ (dir ** "*.css"))),
gzipAssetsSetting,
playPackageEverything <<= playPackageEverything dependsOn gzipAssets
).settings(...
qui me fichiers dans la cible génère quand je dist:
[info] comprimé /Users/wimha/Documents/**/target/scala-2.9 .1/resource_managed/main/public/stylesheets/twitterbootstrap/styles.min.css 183 k => styles.min.css.gz 27 k
mais, en prod, le fichier ne sont pas disponibles:
Impossible de charger la ressource: le serveur a répondu avec un statut de 404 (non trouvé) http://ec2-54-228-70-193.eu-west- 1.compute.amazonaws.com/assets/stylesheets/twitterbootstrap/styles.min.css.gz
J'ai 2 questions:
- Pourquoi n'est pas le fichier disponible?
- Avez-vous une meilleure solution? Peut-être avec un module? Je n'ai pas trouvé quelque chose d'intéressant excepté GreenScript mais c'est seulement pour Play 1.x J'aimerais aussi que mes assets soient fusionnés en un seul fichier.
Merci Julien