【问题标题】:Javascript not loading due to net::ERR_CONTENT_LENGTH_MISMATCH由于 net::ERR_CONTENT_LENGTH_MISMATCH 未加载 Javascript
【发布时间】:2014-05-18 08:00:32
【问题描述】:

我有一个在本地运行良好的应用程序,但在生产环境中运行不佳。 (经典问题,对吧?)

在生产中,JS 没有正确触发。当我打开浏览器控制台时,我看到了这个错误:

net::ERR_CONTENT_LENGTH_MISMATCH

当我查看开发者工具的网络选项卡时,显示它对 text/html 的 GET 请求失败。

这是一个神秘的错误。我只发现了另外两个甚至提到的 SO 帖子,但它们没有解决。 (有兴趣者: first postsecond post

任何想法(1)它意味着什么或(2)如何解决它?

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    我收到错误:net::ERR_CONTENT_LENGTH_MISMATCH

    查看您的服务器日志以确定真正的问题是什么。

    对我来说,问题出在 nginx 和文件权限之间:

    • tail -f /usr/local/var/log/nginx/error.log 或运行 nginx -t 以确定您的 conf 位置,您可以在其中指定自定义日志路径。
    • 在浏览器中刷新资源,例如http://localhost:3000/assets/jquery/jquery.js

    您可能会在日志中看到类似的内容:

    “/usr/local/var/run/nginx/proxy_temp/9/04/0000000049”失败(13: 权限被拒绝)同时读取文件 xyz 的上游

    我是这样解决的:

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

    【讨论】:

    • 在我的例子中,Nginx 作为反向代理运行,我只是用完了磁盘空间。看一下 Nginx 日志就足够了。谢谢。
    • 这也解决了我获取“net::ERR_INCOMPLETE_CHUNKED_ENCODING”的问题,其中我的节点服务器正在缩短文件流。
    • 也为我解决了。当我尝试直接访问如下图像时,我得到了 ERR_CONTENT_LENGTH_MISMATCH:url.to/assets/image.png。完成相同的步骤,删除缓存文件夹后,错误消失了。谢谢!
    • 删除 proxy_temp 然后重新加载 ngix 为我修复了它。
    【解决方案2】:

    根据this bug report,当外部资源长度与响应中给出的 Content-Length 标头不匹配时会发生该错误。

    这可能是因为服务器配置错误,或者(作为一个延伸)可能一些 BOM 字符被放入了文件中,或者甚至可能是不同的行结尾(您是在 DOS 机器上编写并部署到 UNIX 机器上吗?)可能会导致问题。

    希望这会有所帮助。

    【讨论】:

    • 较早的响应,但我在 Windows 上使用 node.js(使用 express.js)编写,并且由于将代码移动到 Ubuntu 服务器,我遇到了几个内容文件的问题(不确定是哪个导致问题)。使用 dos2unix 为我解决了这个问题。
    【解决方案3】:

    我在尝试解释 JSON 结果时遇到了类似的问题。事实证明,沿着这条线的某个地方,一个奇怪的字符落在了数据库中——在这种情况下,罪魁祸首是“â??”。不清楚这个值是怎么到数据库的,但很可能和HTML encoding issues - "Â" character showing up instead of " "有关,不管怎样,去掉奇数后问题就解决了。

    【讨论】:

      【解决方案4】:

      我有类似的问题 [crit] 6889#0: *14817 open() "/var/cache/nginx/proxy_temp/3/02/0000000023" 在读取上游时失败(13:权限被拒绝)

      这是因为 Nginx 工作进程无法访问文件夹 /var/cache/nginx/proxy_temp/ - 我刚刚更改了文件夹权限,一切都开始工作了

      【讨论】:

      • 我做sudo chmod -R 777 /var/lib/nginx/proxy/ ,一切正常。可能有一些安全问题。谁能给我解释一下?
      • 不要设置 777...只给运行 Nginx 的用户授予读取权限(可以通过将其添加到该文件夹​​的所有者组)
      【解决方案5】:

      我在 MAMP 上本地开发并使用 Chrome 作为浏览器时遇到了类似的问题。实时服务器上的相同问题网站没有此类问题。首先,我认为是 MAMP 在玩,我检查了 PHP 版本不匹配、apache 版本等设置,重新安装了,但问题仍然存在。最后,我只是切换到使用 Brave 浏览器(无论如何都推迟了向 Brave 的转换),这为我解决了这个问题。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2015-05-04
        • 2014-06-24
        • 1970-01-01
        • 2017-12-02
        • 2020-11-24
        • 1970-01-01
        • 2016-07-16
        • 1970-01-01
        • 2016-02-13
        相关资源
        最近更新 更多