我将ng-grid与Rails结合使用,并在主页上复制了第一个示例,其中:
<div class="gridStyle" ng-grid="availOptions"></div>
$scope.arr = [{name: "Moroni", age: 50},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34}]
$scope.availOptions = {
data: 'arr'
}
在对资产进行预编译之前,这非常有用。但是跑步后
$ rake assets:precompile
我们突然得到两个表-请参阅http://grab.by/t2dm-并显示错误:
无法调用未定义的方法“ selectionHandlers”
我已经广泛搜索了此问题,但是找不到任何其他在线帮助。所以我想我会在这里发布,因为过去几天我一直在尝试调试它。救命!
任何和所有帮助将不胜感激。
您正在开发中吗?如果是这样,您几乎可以肯定需要关闭资产调试。否则,所有的脚本和样式表都将被复制,因为您同时获得了级联/缩小的版本和未编译的版本。
问题在于javascript_include_tag "application.js"
。
基本上,在开发中,它会扩展为以下几行:
<script src="application.js?body=1"></script>
<script src="my-file1.js?body=1"></script>
<script src="my-file2.js?body=1"></script>
... etc ...
在生产中,关闭资产调试后,您会看到单个串联文件,其资产管道指纹:
<script src="application.js-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.js"></script>
问题是,在开发中,一旦编译了首先application.js?body=1
包含所有脚本的资产,就可以了。但是随后,脚本又被后续的行包含了。
查看您网站的来源;如果您只有一个<script src="application-xxxxxxxx.js"></script>
,则资产调试已关闭,并且此答案将无用。如果<script>
每个源文件都有一个,则将打开资产调试,并且每个脚本将运行两个副本。
当您预编译资产,但继续在默认情况下启用资产调试的开发环境中运行应用程序时,通常会发生这种情况。开发环境和预编译资产不兼容;预编译资产后,您需要杀死服务器并使用重启服务器RAILS_ENV=production
,假设您的开发副本已使用合理的伪生产配置进行了设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句