I'm trying to figure what is the best way of integrating my AngularJS and Play framework projects in order to package them together as front-end and back-end respectively.
I have found this blog post talking about the exactly same problem but mine is slightly different because I'm using Play framework 1.2.5 instead of 2.0, thus I can't control the assets folder with:
GET /assets/*file controllers.Assets.at(path="/public", file)
There is no evident/effective difference because the guy is exposing a lot of files that don't really are part of his application, the files under /public different of javascripts/, images/ and stylesheets/. That is what I would like to avoid, exposing such files in production or having to remove them before deploy to production.
It's worth mentioning that the files under /public different of javascripts/, images/ and stylesheets/ are AngularJS files/folders and mostly related to testing. AngularJS uses Jasmine internally to test (that is what I have read), so the files are Jasmine files disguised of AngularJS files.
It's been a while since I used Play 1.2.x, but you should be able to hide them from Production in the routes file via a condition. Something like:
%{ if(Play.isProd() }%
GET /your-path-#1 404
GET /your-path-#2 404
%{ } else { }%
GET /your-path-#1 real path to file
%{ } }%
Be warned that the syntax will probably be wrong, it's been a long time, but that's the idea :)