我从事 Play 2.1.2 项目,使用 Angular.js、CoffeeScript、require.js 和 bower 来组织前端。使用 bower,我在/app/assets/javascripts/main.coffee
文件中使用 shim。然后我部署 usingplay clean stage
并运行target/start
.
问题是:在stage
阶段期间,Play 不会丑化资源。在Build.scala
:
val main = play.Project(appName, appVersion, appDependencies).settings(
requireJs += "main",
requireJsShim += "main.js"
)
然后在阶段丑化css之后:
Tracing dependencies for: main
Error: Load timeout for modules: angular-bootstrap,angular
http://requirejs.org/docs/errors.html#timeout
In module tree:
main
jquery
Error: Load timeout for modules: angular-bootstrap,angular
http://requirejs.org/docs/errors.html#timeout
In module tree:
main
jquery
[info] RequireJS optimization finished.
所以什么都没有被丑化。在main.coffee
:
require.config
paths:
jquery: "lib/jquery/jquery"
angular: "lib/angular/angular"
...
shim:
angular: {deps: ["jquery"], exports: "angular"}
...
define [
"angular-bootstrap"
"angular"
...
], ->
app = angular.module "app"
...
app
它在客户端完美运行,所有路径都是正确的等等。
requireJsShim += "main.js"
看起来也是正确的:看起来 require.js 优化发生在编译资产之后,所以main.coffee
或者只是main
不起作用。
任何想法问题的根源是什么?以前有人遇到过吗?