Javascript 如何在rails中输出整个资产管道?

Javascript 如何在rails中输出整个资产管道?,javascript,ruby-on-rails,ruby,asset-pipeline,Javascript,Ruby On Rails,Ruby,Asset Pipeline,对于这个特定的rails项目,我想保存一个http请求,所以我想将所有javascript输出到rails资产管道中的主体上 在rails中有什么方法可以做到这一点吗?不幸的是,您在开发中无法轻松地实现这一点,因为文件是由live提供的,但在生产中实现这一点相当简单:您只需要循环编译后的脚本并将其呈现在blob中 这里有一个帮助程序,您可以使用它来代替javascript\u include\u tag,它可以做到这一点: module ApplicationHelper if Rails.

对于这个特定的rails项目,我想保存一个http请求,所以我想将所有javascript输出到rails资产管道中的主体上


在rails中有什么方法可以做到这一点吗?

不幸的是,您在开发中无法轻松地实现这一点,因为文件是由live提供的,但在生产中实现这一点相当简单:您只需要循环编译后的脚本并将其呈现在blob中

这里有一个帮助程序,您可以使用它来代替
javascript\u include\u tag
,它可以做到这一点:

module ApplicationHelper
  if Rails.env.production?
    def embedded_javascript_include_tag(*sources)
      options = sources.extract_options!.stringify_keys
      scripts = sources.uniq.map { |source|
        File.read("#{Rails.root}/public/#{javascript_path(source)}")
      }.join("\n").html_safe
      content_tag(:script, scripts, options)
    end
  else
    def embedded_javascript_include_tag(*sources)
      javascript_include_tag(sources)
    end
  end
end

注意,您仍然需要运行
rakeassets:precompile
,这样才能工作。不要忘记设置环境以启用任何丑八怪和迷你们!(
RAILS\u ENV=production-rake-assets:precompile

您在这里要求什么?“主体上的所有JavaScript”是什么意思?@tadman与其将JavaScript放在外部文件中并发出http请求,不如将http消息主体中的所有JavaScript输出到html中。啊,你的意思是作为内联
标记。明白了。你知道这会不会混淆和缩小javascript吗?我想是的,但我不确定。这只是提供了从
rake资产:precompile
中产生的任何内容,所以假设您已经在
production.rb
中适当地设置了所有内容,应该对它们进行编译。