如何防止只在一个Rails控制器上加载css和js表

How to prevent from loading a css and a js sheet at only one Rails controller?

本文关键字:加载 控制器 css js Rails 一个 何防止      更新时间:2023-09-26

如何防止我的一个Rails应用程序控制器加载一般的css和js加载到整个应用程序?

选项1

如果页面应该没有任何布局(包括css和js),你可以这样做:

class MyAwesomeController < ApplicationController
  layout false
end

选项2

如果你需要一些布局,但没有任何css和js,创建它在views/layouts。例如no_css_and_js.html.erb。然后添加不带任何css和js的html,包括:

<!-- layouts/no_css_and_js.html.erb -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <%= yield %>
</body>
</html>

那么你的控制器应该修改为使用以下布局:

class MyAwesomeController < ApplicationController
  layout 'no_css_and_js'
end

选项3

你也可以修改你的application布局,以防止它加载css和js:

<!DOCTYPE html>
<html>
<head>
  <title>Orca</title>
  <% if controller_name != 'my_awesome' %>
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <% end %>
  <%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>