我有一个脚本库,我想在我的rails应用程序的客户端实现;
在视图中,我知道我可以执行以下操作。
<%= javascript_include_tag 'folder/script.js' %>
..
因为有太多单独的脚本文件,所以这个过程非常浪费时间和冗余。
我知道有一种技术可以将所有脚本包含在public / javascript文件夹中
<%= javascript_include_tag :all %>
但是这会包含目标文件夹之外的不需要的脚本,专门用于一个View。
有没有办法只包含特定文件夹中的所有脚本?
提前致谢
答案 0 :(得分:6)
它内置于Rails中。使用接受的答案是糟糕的风格。请使用以下内容:
<%= javascript_include_tag :all, :recursive => true %>
使用包装工具非常适合生产。但这是在简单,轻量级的开发环境中实现它的正确方法。
答案 1 :(得分:3)
您可以使用标准的javascript_include_tag和Dir.glob方法将所有文件包含在目录中。所以,这样的事情应该有效:
<%= javascript_include_tag Dir.chdir(File.join(Rails.root, "public", "javascripts", "your", "subdiretory")) { |d| Dir.glob("*.js") } %>
答案 2 :(得分:1)
http://github.com/sbecker/asset_packager
将所有javascripts捆绑到生产中的一个文件中,并在开发中单独列出它们。使用一个rake任务,您可以定义所有javascripts和样式表,以及您希望它们存储的顺序。另一个任务将它们打包成两个文件。真的很酷。
答案 3 :(得分:0)
对于使用Rails 3.1或更新版本的任何人来说,asset pipeline是可行的方法。
答案 4 :(得分:0)
以下为我工作
def include_folder_javascripts(path)
output = []
Dir.chdir(File.join(Rails.root, path)) { |d|
output << Dir.glob("*.js").map{|js| javascript_include_tag('calendar_date_select/'+js)}.join
}
raw output * "\n"
end