Javascript文件只能在Rails应用程序中按字母顺序工作

Javascript files only work alphabetically in Rails app

本文关键字:顺序 工作 应用程序 文件 Rails Javascript      更新时间:2023-09-26

我正在开发一个减肥应用程序,可以跟踪用户的体重以及他们每天摄入的卡路里。我正在使用Highcharts来显示此信息,每个图表都以卡路里.js或重量.js保存。卡路里图表显示正常,但我在显示权重图表时遇到了问题。仅当我在同一页面上显示卡路里图表时,它才会显示。

所做的唯一更改是在视图中,我在其中添加了卡路里图表的div 代码 - 没有更改模型、控制器或 javascript。不知何故,这修复了体重图表。

如果我将权重重命名.js为卡路里之前的内容.js按字母顺序 - 重量.js - 那么问题就会逆转,如果没有权重图表,我就无法显示卡路里图表。根据Rails控制台的说法.js卡路里和体重.js总是加载的。

这是怎么回事?

编辑:骨干网.js - Coffeescript extends说ROR确实按字母顺序导入资产,所以这并不太疯狂。

您是否使用的是 rails 3.1 或更高版本?

如果是这样,您应该查看您的应用程序/资产/应用程序.js

//= require jquery
//= require jquery_ujs 
//= require_tree .

如果您需要某个加载顺序,您可以在此处设置它,如下所示:

//= require jquery
//= require jquery_ujs 
//= weight
//= calories
//= require_tree .

否则,rails 将需要目录中按字母顺序排列的文件。

查看指南:http://guides.rubyonrails.org/asset_pipeline.html

感谢您的所有评论,它帮助我朝着我需要的方向前进。我没有加载导致问题的所有资产,而是只在页面上加载了我需要的资产。我使用标头中的 yield 来执行此操作,以仅加载该特定.js文件。我还需要更改 ''app''assets''javascript''application.js 文件,使其不自动包含整个目录。