Javascript在Rails应用程序中包含标记最佳实践

btw*_*btw 61 javascript ruby-on-rails header rjs

假设我需要在<head>ERb模板中调用javascript文件.我的直觉是做平常的事情:

<head>
<%= javascript_include_tag :defaults %> <!-- For example -->
</head>
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的布局中.当然问题是这些javascript文件被加载到我的应用程序的每个页面中,无论它们是否被查看的页面都需要.

所以我想知道的是,是否有一种很好的方法可以将javascript加载到标题中,例如,只在特定目录中找到的所有ERb模板.

mau*_*ycy 111

我会使用content_for.

例如,指定将其插入应用程序布局的位置:

<head>
<title>Merry Christmas!</title>
<%= yield(:head) -%>
</head>
Run Code Online (Sandbox Code Playgroud)

并从视图发送它:

<%- content_for(:head) do -%>
<%= javascript_include_tag :defaults -%>
<%- end -%>
Run Code Online (Sandbox Code Playgroud)

  • @MaffooClock:如果你想要更短,你可以删除大括号,只需执行<%content_for:head,javascript_include_tag(:this_file,:that_file,:more_files)%>.看到?保存了两个字符!;-) (7认同)
  • 在较旧版本的rails中,"<% - "可防止erb在<%标记之前生成不必要的空格.这是在较新版本时自动发生的 (2认同)

Jas*_*Ong 6

我觉得包括所有默认值都没有错,因为它们可以缓存在用户的浏览器上.

  • 如果您的包含仅适用于网站的管理部分呢? (11认同)