1

我从 Rails 4 开始,我有几个关于资产的问题。如何指定 CSS 必须包含在某些视图中?我对 JS 文件有同样的问题。我在 app/assets/javascripts/viewname.js 中添加了一个 JS 文件,但是它包含在每个页面中。我希望它只在 viewname 视图中显示。

请帮帮我!谢谢

4

1 回答 1

2

将文件另存为/vendor/assets/javascripts/viewname.js并将其包含在您的视图中:

<%= javascript_include_tag 'viewname' %>

在 HTML 标头中包含 JS 文件

在视图文件中使用content_for以收集稍后将呈现的内容。

<% content_for :head %>
  <%= javascript_include_tag 'viewname' %>
<% end %>

调用yield布局模板来渲染收集到的内容:

<head>
  ...
  <%= yield :head %>
</head>

要自动包含以当前控制器命名的 javascript 文件,您还可以将其放入布局模板文件中:

<head>
  ...
  <%= javascript_include_tag params[:controller] %>
  <%= javascript_include_tag "#{params[:controller]}_#{params[:action]}" # variant with action name %>
</head>

但这会给没有 javascript 文件的控制器/操作带来 404 错误。

于 2013-10-19T14:45:22.410 回答