我有一个Rails应用程序。还有一个javascript(javascript1.js
)文件必须包含在每个视图的最底部。我把它放到/ assets / javascripts文件夹中。 Application.js
包含以下代码
//= require jquery
//= require jquery_ujs
//= some other files
//= require_directory .
即使javascript1.js
中不包含Application.js
,它也会自动包含在内,不是吗?
那我怎么能做我想做的事呢?
答案 0 :(得分:8)
单独定义,包含和执行您的javascript。
这就是我要做的事情:
javascript1.js
函数中。现在解释javascript文件的时间并不重要,因为解释该文件只是添加了一个函数供以后使用render
调用或javascript_include_tag
),然后自动包含在每个视图中javascript1.js
中定义的函数。回应第一条评论:
当然,您可以跳过第1步和第3步,然后使用以下网址将{j}添加到layouts/application.html.erb
。
<%= javascript_include_tag "javascript1" %>
(假设您正在使用erb模板并假设文件位于javascript_include_tag
方法将自动找到它的位置(请参阅http://guides.rubyonrails.org/layouts_and_rendering.html)。
回应第二条评论:
是的,我对你的第一条评论的回应没有解决这个问题。没有简单的方法可以从资产管道中排除文件,因为清单文件明确列出了包含的内容。解决方案是将除javascript1.js
之外的所有内容移至assets/javascripts/all
,并将//= require_directory .
更改为//= require_directory all
。另一个丑陋但实用的解决方案是在底部添加//= require_self
并将javascript1.js
的内容添加到application.js