包含来自vendor / assets / javascripts的javascript

时间:2014-03-14 07:13:25

标签: ruby-on-rails ruby-on-rails-3 include include-path

如何在单个视图文件中包含位于vendor / assets / javascripts中的javascript文件(不在application.js中)?

某种javascript_include_tag?请帮我解释语法

我尝试过以下操作但它无法正常工作:

  • javascript_include_tag'回复'
  • javascript_include_tag' respond.js'
  • javascript_include_tag' vendor / assets / javascripts / respond'
  • javascript_include_tag' vendor / assets / javascripts / respond.js'

谢谢

2 个答案:

答案 0 :(得分:1)

<%= javascript_include_tag "your_file" %>

如果您尝试加入respond.js,可以查看respond_rails宝石,这样您就可以在自己的视图中加入此内容:

<%= respond_include_tags %>

在你的课程视图中

答案 1 :(得分:0)

这可能是一个古老的问题,但对于正在寻找适用于任何js文件的答案的其他人,例如:vendor/assets/randomfolder/anotherfolder/custom.js,然后在个人内部使用custom.js包含javascript_include_tag查看文件,您需要将以下代码行添加到assets.rb中:

Rails.application.config.assets.precompile += %w( anotherfolder/custom.js )

此处的路径是anotherfolder/custom.js而不是randomfolder/anotherfolder/custom.js,因为vendor/assets/中的任何文件夹/文件都会自动添加到rails资产管道路径/ sprokets搜索路径中。请注意,未添加深层文件夹,因此未添加anotherfolder/custom.js路径。

将该行添加到assets.rb之后,您现在可以在任何视图文件中使用javascript_include_tag anotherfolder/custom.js了。


另外,如果您不想继续键入子目录anotherfolder,则可以转到application.rb,并使用以下代码将其添加到资产管道/ sprokets路径:

config.assets.paths << Rails.root.join("vendor", "assets", "randomfolder", "anotherfolder")

这样做之后,您现在可以使用javascript_include_tag custom.js。可以在有限的情况下使用此方法,但是不建议包含所有子目录(包括更深的子目录)。

注意:请记住重新启动服务器,以便可以更新加载路径