【问题标题】:Include javascript from vendor/assets/javascripts包括来自 vendor/assets/javascripts 的 javascript
【发布时间】:2014-04-19 08:33:00
【问题描述】:

如何将位于 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'

谢谢

【问题讨论】:

  • 自己回答了吗? ;)
  • 哈哈,有点意思,但我不知道该在参数中输入什么?该文件是respond.js ..我试过'respond.js'、'respond'和'vendor/assets/javascripts/respond.js',但都不起作用
  • 1.使用浏览器控制台 2.view page source检查文件是否加载
  • 你的第一次尝试应该可以工作

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


【解决方案1】:
<%= javascript_include_tag "your_file" %>

如果您尝试包含 respond.js,您可以查看 respond_rails gem,这将允许您将其包含在您的视图中:

<%= respond_include_tags %>

当然是你自己的看法

【讨论】:

    【解决方案2】:

    这可能是一个老问题,但对于正在寻找适用于任何 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 assets pipeline path / sprokets search path。请注意,没有添加深层文件夹,因此是 anotherfolder/custom.js 路径。

    将该行添加到assets.rb 后,您现在可以在任何视图文件中使用javascript_include_tag anotherfolder/custom.js 而不会出现问题。


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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      相关资源
      最近更新 更多