Ruby on Rails - 如何在application.js中执行require

6

我正在阅读一本关于“Ruby on Rails”的书。在“application.js”中,我们可以通过以下方式引入其他JavaScript库,更具体地说是jQuery UI:

//= require jquery
//= require jquery_ujs
//= require jquery-ui

作为普通的JavaScript文件(不像“html.erb”那样是Ruby扩展名),应用程序如何知道执行require命令?这是一种什么样的JavaScript语法:
//= 

由于这是普通的JavaScript文件,那么为什么不使用“script”标签来包含JavaScript文件呢?

另外,我在这里读到,“require”方法将检查$LOAD_PATH变量文件夹中定义的此库。我如何查看“jquery-ui”存储在哪里?我之所以问,是因为在其他应用程序中,为了使用jQuery UI,我不仅需要添加JavaScript文件,还需要添加CSS文件和库中使用的图像——在这种情况下,我们只需一行代码即可完成?

1个回答

10

这是什么类型的JavaScript语法?

任何以//开头的内容都是JavaScript注释。

它如何处理它?

服务器端的Sprockets会扫描JS文件中的指令//=是一个特殊的Sprocket指令。当它遇到该指令时,它会请求Directive Processor处理命令,例如require。如果没有Sprockets,则//= require ..行将成为简单的JS注释。

Ruby require与Sprockets require

这两者完全不同。您提供的链接是Ruby的require。

为什么不使用脚本标签来加载JS文件。

通常,您需要将所有应用程序JS文件连接起来,然后将它们压缩成一个主JS文件,然后再包含进来。我建议阅读有关此问题的YSlow最佳实践。

我也推荐观看有关资产管道的Railscasts - http://railscasts.com/episodes/279-understanding-the-asset-pipeline

干杯!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接