Rails图像消失,出现错误:无法加载资源:net :: ERR_CONTENT_LENGTH_MISMATCH

时间:2014-03-12 04:12:01

标签: ruby-on-rails ruby-on-rails-4 asset-pipeline

基本上我的问题是页面加载正常并且看起来很正常。大约30秒后,它突然消失了。

这里是错误之前的服务器日志(加载页面时):

Started GET "/" for 127.0.0.1 at 2014-03-11 23:53:30 -0400
Processing by PagesController#home as HTML
  Rendered pages/home.html.erb within layouts/application (0.7ms)
  Rendered layouts/_head.erb (3.3ms)
  Rendered layouts/_header.erb (0.9ms)
  Rendered layouts/_footer.erb (0.2ms)
Completed 200 OK in 11ms (Views: 10.5ms)

Started GET "/assets/favicon.ico" for 127.0.0.1 at 2014-03-11 23:53:30 -0400

Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-11 23:53:30 -0400

Started GET "/assets/home.css?body=1" for 127.0.0.1 at 2014-03-11 23:53:30 -0400

Started GET "/assets/taylor.jpg" for 127.0.0.1 at 2014-03-11 23:53:30 -0400

Started GET "/assets/wide.jpg" for 127.0.0.1 at 2014-03-11 23:53:30 -0400

Started GET "/assets/enchanted_large.png" for 127.0.0.1 at 2014-03-11 23:53:30 -0400

Started GET "/assets/sad.jpg" for 127.0.0.1 at 2014-03-11 23:53:30 -0400

然后突然图像因客户端错误而消失(在Chrome的开发控制台中看到):

Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH
  http://localhost:3000/assets/taylor.jpg

日志的唯一补充是:

Started GET "/assets/favicon.ico" for 127.0.0.1 at 2014-03-11 23:54:00 -0400

在看起来不错的30秒内,chrome有一个加载符号,其中的图标

我的html在这一点上相当简单:

<div class="home-images">
  <%= image_tag "taylor.jpg", class: "home-image" %>
  <%= image_tag "wide.jpg", class: "home-image hide" %>
  <%= image_tag "sad.jpg", class: "home-image hide" %>
</div>

我甚至完全拿出了我的javascript。我也尝试自己去掉turbolinks。它只发生在一个图像上。我不知道为什么......

当我切换html时,出现错误的是相同的图像(泰勒):

<div class="home-images">
  <%= image_tag "wide.jpg", class: "home-image" %>
  <%= image_tag "taylor.jpg", class: "home-image hide" %>
  <%= image_tag "sad.jpg", class: "home-image hide" %>
</div>

我的所有图片都位于我的app / assets / images文件夹中

我的标题如下:

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Enchanting Events and Design</title>
  <%= favicon_link_tag       "favicon.ico" %>
  <%= stylesheet_link_tag  "application" %>
  <%= javascript_include_tag  "application" %>
  <%= csrf_meta_tags %>
</head>

4 个答案:

答案 0 :(得分:25)

编辑图像尺寸时遇到同样的问题。

上述解决方案均不适用于我,但rake tmp:clear已做到了!

答案 1 :(得分:8)

使用mv命令替换图像时出现此问题。这使时间戳保持不变,因此打破了资产缓存。受影响的文件的简单touch修复了它。

答案 2 :(得分:2)

尝试“rake assets:clean”并重建您的资产(如果需要)。我通过这种魔法得到了工作。

答案 3 :(得分:0)

这可能是nginx另一个问题的症状。请看这篇文章:

Rails image disappears with error: Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH

我看到了与您相同的问题,结果发现是底层缓存目录的nginx权限问题,这也导致问题有些断断续续。