簡體   English   中英

Rails應用程序加載數十個jQuery資源

[英]Rails app loading dozens of jquery assets

我的rails應用程序生成一個html頁面,該頁面的頭部包含大約40個鏈接和80個腳本。 這不正常嗎? 我想知道是否可以減少這些錯誤,這是否有助於解決我的應用程序在heroku上引發的內存錯誤。 還是可以幫助我提高應用的性能。

編譯的html (除非我收到將它們全部發布的請求,否則我將僅包括前四個鏈接標簽和前四個腳本標簽。)

<html>
<head>
  <title>Dr. Macejkovic | Mr. Z School </title>
  <link rel="stylesheet" media="all" href="/assets/jquery-ui/theme.self-830c3407ba1359ea36eee978235be14de5b78dacfa658a31226fe4f2b0faa7e7.css?body=1" data-turbolinks-track="true" />
<link rel="stylesheet" media="all" href="/assets/jquery-ui/core.self-e4bdefd3813c8a715955a6c65b9e730846dcae6a0576618563d635ff0b18a3ca.css?body=1" data-turbolinks-track="true" />
<link rel="stylesheet" media="all" href="/assets/jquery-ui/accordion.self-aa0730fc025317fed4feff2aa5fc07cba5a545dfc5c913a2984ba6f8695b29fb.css?body=1" data-turbolinks-track="true" />
<link rel="stylesheet" media="all" href="/assets/jquery-ui/autocomplete.self-f0b810a4a7bb8c90994675d7c5bfe636d615a5785cf81cae3340aa5e6adc55ca.css?body=1" data-turbolinks-track="true" />

#40 additional similar link tags omitted

  <meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="lQ2XTs3tTFNf+nuVR2NS9FPk/R4JWOO75SVBJuxfok547SCaN2KooB44hVwjJo1Pl5oX+bahrG8OdUyow5u6eQ==" />
   <!--[if lt IE 9]>
      <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/r29/html5.min.js">
      </script>
 <![endif]-->
  <script src="/assets/jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery_ujs.self-e87806d0cf4489aeb1bb7288016024e8de67fd18db693fe026fe3907581e53cd.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/bootstrap.self-d0e973a52d36a01036265aeefaf2d1ae3499d2cb231a9be3bd846432daf231de.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery.turbolinks.self-176b9819f30444d441e820bbccd3264fe57753aeafd54dec732b0dbc77129a2a.js?body=1" data-turbolinks-track="true"></script>

  #80 additional similar script tags omitted
</head>

的Gemfile

source 'https://rubygems.org'

gem 'rails',          '5.0.0'
gem 'bcrypt',         '3.1.11'
gem 'faker',          '1.6.3'
gem 'will_paginate',           '3.1.0'
gem 'bootstrap-will_paginate', '0.0.10'
gem 'bootstrap-sass', '3.3.6'
gem 'puma',           '3.4.0'
gem 'sass-rails',     '5.0.5'
gem 'uglifier',       '3.0.0'
gem 'coffee-rails',   '4.2.1'
gem 'jquery-rails',   '4.1.1'
gem 'jquery-ui-rails'
gem 'turbolinks',     '5.0.0'
gem 'jquery-turbolinks'
gem 'jbuilder',       '2.4.1'
gem 'best_in_place', '~> 3.1'
gem 'responders', '~> 2.2'
gem 'carrierwave', '0.11.2'
gem 'mini_magick', '~> 4.3'
gem 'figaro'
gem 'fog-aws', '0.12.0'

group :development, :test do
  gem 'sqlite3', '1.3.11'
  gem 'byebug',  '9.0.0', platform: :mri
end

group :development do
  gem 'web-console',           '3.1.1'
  gem 'listen',                '3.0.8'
  gem 'spring',                '1.7.1'
  gem 'spring-watcher-listen', '2.0.0'
end

group :test do
  gem 'rails-controller-testing', '0.1.1'
  gem 'minitest-reporters',       '1.1.9'
  gem 'guard',                    '2.13.0'
  gem 'guard-minitest',           '2.4.4'
  gem 'capybara'
  gem 'poltergeist', '~> 1.10'
  gem 'database_cleaner'
end

group :production do
  gem 'pg', '0.18.4'
end

應用程序/視圖/布局/ application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title><%= full_title(yield(:title)) %> </title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>

  <%= csrf_meta_tags %>
  <%= render 'layouts/shim' %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
</head>
<body>
  <%= render 'layouts/header' %>

  <div class="container">
    <% flash.each do |message_type, message| %>
        <%= content_tag(:div, message, class: "alert alert-#{message_type}") %>
    <% end %>
    <%= yield %>
    <%= render 'layouts/footer' %>
    <%= debug(params) if Rails.env.development? %>
  </div>


</body>
</html>

預先感謝您的任何見解。

PS:這個問題只是我嘗試解決內存錯誤的步驟之一。 如果您有明確的建議或推薦的文章,我也將不勝感激。 我正在通過本文http://www.schneems.com/2015/05/11/how-ruby-uses-memory.html進行工作 ,但我正在努力弄清楚如何將此信息應用於我應用程序。

上面的其他js文件通過gem加載

gem 'jquery-rails',   '4.1.1'
gem 'jquery-ui-rails'
gem 'turbolinks',     '5.0.0'
gem 'jquery-turbolinks'

當您將這些gems包含在gem文件中時,js文件將被添加到

app/assets/javascripts/application.js

例如:

//= require jquery
//= require jquery_ujs

如果您不需要那些jquery和turbo鏈接,則可以對這些gem進行操作。

有關更多信息,請參見那些gems文檔。

對於jquery: https : //www.rubydoc.info/gems/jquery-rails/4.3.3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM