如何将位于vendor/assets/javascript中的javascript文件包含在单个视图文件中(不在application.js中(?
某种javascript_include_tag
?请帮助我语法
我尝试了以下操作,但不起作用:
- javascript_include_tag"响应">
- javascript_include_tag"response.js">
- javascript_include_tag'vendor/assets/javascripts/response'
- javascript_include_tag'vendor/assets/javascripts/response.js'
感谢
<%= javascript_include_tag "your_file" %>
如果您试图包含respond.js
,您可以查看responsed_rails gem,它将允许您在视图中包含以下内容:
<%= respond_include_tags %>
在您的视图中,
这可能是一个老问题,但对于其他正在寻找适用于任何js文件的答案的人来说,例如:vendor/assets/randomfolder/anotherfolder/custom.js
,如果要在单个视图文件中使用javascript_include_tag
包含custom.js
,则需要在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
。在有限的情况下使用这种方法是可以的,但不建议包括所有子目录(包括更深的子目录(。
注意:请记住重新启动服务器,以便可以更新加载路径