使用此代码:
<%= javascript_include_tag 'execute_asap' %>
我可以包含链接到execute_asap.js
的脚本。
但是,要尽快真正执行此脚本,脚本的内容应出现在HTML文档本身中,这样客户端就不必发出额外的HTTP请求来获取javascript。
在获得资产管道和清单文件的好处的同时,有什么方法可以做到这一点?
我的用例是,我使用JavaScript延迟加载图像,并且希望尽快开始图像加载。
我做了类似的事情,但是有一个css文件。我最终在helper/application_helper.rb
中为此创建了自己的方法。因此,我寻找编译后的资产并将其缩小并返回html_safe
。
def inline_css
File.read([Rails.root,
'public',
'assets',
Rails.application.assets_manifest.files.select { |k, v| k if v['logical_path'] == 'application.css' }
.sort_by{|k,v| v['mtime']}.last.first].join('/').to_s)
.gsub(/\r\n|\r|\n|/, '')
end
<style><%= inline_css.html_safe %></style>
这不是最漂亮的解决方案,但是对我有用。