rails包括JavaScript或仅在某些页面上的文件

问题描述:

好吧Im一般来说新的rails,这些默认的加载器和缓存加载器是他们对我有意义的所有东西。但我的问题是。如果我想在特定页面上包含某个JS文件或2或特定脚本,我该怎么做。rails包括JavaScript或仅在某些页面上的文件

与导轨我有 app/views/layouts/application.html.erb在这个文件我收集是我的网站/服务的基本模板,并在那里我会把所有的运动部件。不过,我偶尔需要在特定页面上只需加载一个JavaScript文件。但它需要在jquery文件之后调用,以便在我要加载的文件之前将jquery加载到内存中。所以我不完全确定我会怎么做。在布局的原因我有JavaScript的加载程序行,无论它正是我不记得,但它的:默认没有那么少,这意味着jQuery和应用程序将默认从API告诉我加载出来。

这使我想到另一个问题,最初设置rails服务器的人我们已经添加了一个默认文件,我想模仿,但不知道如何。

最简单的方法是将脚本文件包含在您需要的视图中。 jQuery将已经在布局中加载。 或者,您可以使用content_for,就像ctcherry提到的那样。您可以在这里找到更详细的解释:Javascript Include Tag Best Practice in a Rails Application

此外,关于你的最后一个问题,我不知道我的理解是正确的,但你可以通过一个逗号分隔javascript_include_tag添加更多选项:

javascript_include_tag :defaults, "my_other_file", "etc" 

content_for可以帮助你,你看那包括一段代码的例子:<%= yield :script %>

或者,想办法让JS代码来检测,如果它开始正确的页面(也许一个类上执行或身份标记上设置的ID),并且只有在符合条件时才执行。然后,您可以在整个首页加载时将整个JavaScript集合压缩并缩小到用户的浏览器,从而提高网站的性能。


可以用于此:

<head> 
<title>My blog</title> 
<%= yield(:head) -%> 
</head> 

而且从视图中有发送:

<%- content_for(:head) do -%> 
<%= javascript_include_tag :defaults -%> 
<%- end -%> 

这是很好的工作!