application.css和application.js net :: ERR_CONTENT_LENGTH_MISMATCH

时间:2014-04-28 05:29:46

标签: ruby-on-rails amazon-web-services nginx asset-pipeline unicorn

我刚刚在AWS EC2上将我的nginx从1.4.2(/ usr / local)升级到1.4.7(yum)。我现在在客户端出现了一对错误:

GET https://subdomain.mysite.com/assets/application.css net::ERR_CONTENT_LENGTH_MISMATCH 
GET https://subdomain.mysite.com/assets/application.js net::ERR_CONTENT_LENGTH_MISMATCH 

我为此感到茫然,谷歌并没有太多帮助。关于从哪里开始的任何想法?所有帮助赞赏。可以从手动安装切换到yum install吗?

3 个答案:

答案 0 :(得分:9)

我可以确认答案1解决了潜在的问题(我是一个新的SE用户,所以我还不能支持它)。以下是搜索引擎的更多细节:

来自/var/log/nginx/error.log

2014/04/30 08:07:48 [crit] 35135#0: *116437 open() "/var/lib/nginx/proxy/7/09/0000001097" failed (13: Permission denied) while reading upstream

在我的情况下发生这种情况是因为我最近更改了运行nginx的用户(默认的nginx配置使用www-data中的/etc/nginx/nginx.conf)。

我的解决方案是chown -R correct_user:root /var/lib/nginx/proxy。我想我也可以rm -rf使用现有的/var/lib/nginx/proxy子目录,期望nginx使用correct_user作为所有者重新创建它们。

埃里克·弗朗西斯感谢你搞清楚这一点!这很容易让我节省了一天的时间。

答案 1 :(得分:7)

tail -f /usr/local/var/log/nginx/error.log

您可能会看到类似的内容:

  

“/ usr / local / var / run / nginx / proxy_temp / 9/04 / 0000000049”失败(13:   阅读上游时,权限被拒绝

我是如何修理的:

sudo nginx -s stop
sudo rm -rf /usr/local/var/run/nginx/*

答案 2 :(得分:3)

好的,所以这可以通过几种方式解决。要做的是检查您的日志文件。

我的位于/usr/share/nginx/log/error-appname.log

关闭日志,您会发现配置文件中定义的用户(我的/etc/nginx/nginx.conf)很可能没​​有权限。我使用用户nobody

对于一个应用程序,我必须将u+rx(nginx需要可执行文件)提供给我的应用程序用户的主文件夹,一直到我的应用程序的公共资产目录。

在另一台服务器上,nobody无法写入nginx的/var/lib/nginx/tmp/proxy文件夹。所以我不得不chown nobody /var/lib/nginx向下/proxy文件夹nobody试图写信。