Rails 每个请求多次调用操作

Rails action being called multiple times per request

我有一个控制器操作,每个浏览器请求都会调用它 3 次。有任何想法吗? config/routes.rbapplication_controller.rb 非常简单。

下面的代码,

config/routes.rb

Rails.application.routes.draw do
    root 'tiles#index'

+

controllers/tiles_controller.rb

class TilesController < ApplicationController
def index
  puts "this line prints three times in the console per request"
end

+

tiles/index.html.erb
<% if notice %>
  <p id="notice"><%= notice %></p>
<% end %>

<div id="tiles">
  <%= render "tile", tile: { type: "sam", id: "0" } %>
  <%= render "tile", tile: { type: "inputs", id: "1" } %>
  <%= render collection: @tiles, partial: "tile" %>
  <%= render "tile", tile: { type: "social", id: "1000" } %>
</div>

+

这是控制台日志:

log/development.log
Started GET "/" for 127.0.0.1 at 2017-08-31 16:56:28 -0400
Processing by TilesController#index as HTML
Started GET "/" for 127.0.0.1 at 2017-08-31 16:56:28 -0400
Processing by TilesController#index as HTML
  [1m[36mProject Load (0.5ms)[0m  [1m[34mSELECT  "projects".* FROM "projects" ORDER BY "projects"."launch_date" ASC LIMIT [0m  [["LIMIT", 10]]
  [1m[36mProject Load (9.1ms)[0m  [1m[34mSELECT  "projects".* FROM "projects" ORDER BY "projects"."launch_date" ASC LIMIT [0m  [["LIMIT", 10]]
  Rendering tiles/index.html.erb within layouts/application
  Rendered tiles/_tile_sam.html.erb (0.3ms)
  Rendered tiles/_tile.html.erb (8.0ms)
  Rendering tiles/index.html.erb within layouts/application
  Rendered tiles/_tile_sam.html.erb (0.0ms)
  Rendered tiles/_tile.html.erb (0.9ms)
  Rendered tiles/_tile_instagram.html.erb (12.6ms)  
  ...
  Rendered tiles/_tile_twitter.html.erb (0.5ms)
  Rendered collection of tiles/_tile.html.erb [48 times] (125.9ms)
  Rendered tiles/_tile_project.html.erb (0.1ms)
  Rendered tiles/_tile_social.html.erb (0.6ms)
  Rendered tiles/_tile.html.erb (2.7ms)
  Rendered tiles/index.html.erb within layouts/application (166.1ms)
  Rendered tiles/_tile_twitter.html.erb (0.6ms)
  ...
  Rendered collection of tiles/_tile.html.erb [48 times] (158.5ms)
  Rendered tiles/_tile_social.html.erb (0.1ms)
  Rendered tiles/_tile.html.erb (1.0ms)
  Rendered tiles/index.html.erb within layouts/application (165.3ms)
Completed 200 OK in 1310ms (Views: 217.1ms | ActiveRecord: 9.1ms)


Completed 200 OK in 1325ms (Views: 204.5ms | ActiveRecord: 0.5ms)

求助!

通过逐行删除与此 action/view 相关的代码,最终解决了这个问题。基本上,我生成了一些带有空 src 字段的 img 标签。显然,这会导致许多现代浏览器多次加载网站,可能是为了寻找丢失的图像或假设根 URL 是图像本身?

找到此处引用的行为:

https://forums.asp.net/t/1804472.aspx?Bizzare+safari+thing+two+page+loads+for+each+page+

page loads twice in Google chrome