我正在使用Rails 4.2.1, Bower, angular-rails-templatesgem 和ui-router-extras.
使用 bower安装ui-router-extras并将其包含在我application.js的 with:require ct-ui-router-extras文件中后,我收到以下错误:
Sprockets::FileNotFound - couldn't find file 'ct-ui-router-extras'
经过一番玩弄后,我发现如果我将包含更改为:require ui-router-extras我收到以下错误:
Sprockets::Rails::Helper::AssetAliasUsed - Asset was linked to from an alias rather than its exact path. Alias resolving may not be available in production.
15:01:07 web.1 |
Use "ui-router-extras.js" instead of "ui-router-extras/release/ct-ui-router-extras.js"
这应该是正确的别名,因为 bower.json 文件ui-router-extras映射到ct-ui-router-extras,但经过一些挖掘,我发现这个别名问题与sprockets.
使这更加复杂,angular-rails-templates与最新版本的sprockets. 但是,angular-rails-templates它与 兼容sprockets 2.12.3,根据sprockets上面的问题,它应该包括对别名错误的修复。
鉴于我仍然遇到问题,我怀疑针对 sprockets 问题实施的修复不是一个完整的修复。
话虽这么说,别名问题实际上可能已在 中修复,sprockets >= 3.0但sprockets > 3.0由于.angular-rails-templates
我是 Bower 和 Angular 的新手。我对上述问题的临时解决方案是将ct-ui-router-extras&的所有实例ct.ui.router.extras(包括文件名)分别重命名为ui-router-extras& ui.router.extras。
虽然这是有效的,但显然并不理想。如果有人有更好的解决方案,我欢迎。
另外,我不确定我是否应该提交一个错误sprockets或者一个错误ui-router-extras(这个错误已经存在angular-rails-tempaltes)