【问题标题】:Debug message "Resource interpreted as other but transferred with MIME type application/javascript"调试消息“资源解释为其他但使用 MIME 类型应用程序/javascript 传输”
【发布时间】:2010-10-14 01:57:02
【问题描述】:

好的,我理解消息的含义是什么意思,但我真的不确定是什么原因造成的。顺便说一句,我在 Mac OS X 上使用 Safari 和 Web Inspector。

我的文档头中有以下内容:

<script src="http://local.url/a/js/jquery.js" type="text/javascript"></script>
<script src="http://local.url/a/js/jquery.inplace.js" type="text/javascript"></script>

jquery.js 处理得很好,但另一个文件会导致警告。这个文件中的 javascript 似乎也永远不会被执行。

该文件是通过mod_deflate 提供的,所以它是 gzip 编码的,但其他文件也是如此。

有没有人知道是什么原因造成的,或者如何解决?

大家好, 天然气。

【问题讨论】:

  • 哪个版本的 safari?
  • 你能发布一个有效的示例 URL 吗?从浏览器的角度查看实际发生的情况会很有帮助。
  • 这可能是一个错误,我的 Safari 4 在 win 上也出现了同样的情况。

标签: javascript apache safari mime-types


【解决方案1】:

我不认为这是一个错误, 尝试将 MIME 类型添加到您的 .htaccess 文件中 例如,将以下内容放入或添加到您的 .htaccess 文件(应与 .js 或以上文件夹位于同一位置)

#JavaScript
AddType application/x-javascript .js

这解决了我的树“资源解释为其他但已转移......”警告。 每次您收到这种警告时,都意味着您的 .htaccess 文件中没有足够的信息。

BTW1:由于您正在修改 .htaccess 文件,请确保您重新启动服务器。

BTW2:我也可以在 Safari 4 中清除相同的 GIF 文件警告:

#GIF
AddType image/gif .gif

BTW3:对于其他文件类型:请参阅 w3schools listhtaccess-guide

【讨论】:

  • 修改.htaccess后不需要重启服务器。
【解决方案2】:

在 APACHE 上

将这些 MIME 类型附加到根目录中的 .htaccess 中。我推荐第二行,因为它可能有助于防止将来出现任何与 CSS 文件有关的潜在 MIME 解释警告。

AddType application/x-javascript .js
AddType text/css .css    

重启你的 Apache...

在 NGINX 上

添加到您的 nginx.conf 或 mime.types 导入文件(推荐方法)。根据需要/相关添加任何或全部。

types {
    text/html                             html htm shtml;
    text/css                              css;
    text/xml                              xml;
    image/gif                             gif;
    image/jpeg                            jpeg jpg;
    application/x-javascript              js;
    application/rss+xml                   rss;
    text/plain                            txt;
    image/png                             png;
    image/tiff                            tif tiff;
    image/svg+xml                         svg svgz;
    image/webp                            webp;
    application/postscript                ps eps ai;
    application/pdf                       pdf;
    application/rtf                       rtf;
    application/vnd.ms-excel              xls;
    application/vnd.ms-powerpoint         ppt;
    application/msword                    doc;
    application/x-shockwave-flash         swf;
    application/xhtml+xml                 xhtml;
    application/zip                       zip;
}

【讨论】:

    【解决方案3】:

    解决了!

    这个错误我已经好几天了。这让我发疯,因为它不允许我使用 firefox firebug 的脚本调试器。最后,当我删除“background-image: url()”样式属性中的空 url 时,我的错误得到了解决。

    这真是太痛苦了,我真的希望有人可以使用这个建议。

    【讨论】:

    • 这很难调试,直到我从 SO 上的错误字符串中搜索。该错误来自 Wordpress 主题 ProMotion,它只是将用户输入的任何内容输出为背景图像 URL。大多数情况下,没有输入背景图片 URL。
    【解决方案4】:

    导致这种情况的原因似乎很多。对我来说,这是 IIS 中的小写重写规则。将问题文件(js 和 png)更改为小写,问题就消失了。

    【讨论】:

      【解决方案5】:

      Mac 上出现此错误的另一个常见原因是 Apple 的隔离标志。

      ls 包含相关资源的目录。如果您看到扩展属性指示符,即权限块末尾的小 @ 符号(例如 -rw-r--r--@ ),则该文件可能被隔离。

      尝试ls -la@e 并寻找com.apple.quarantine

      以下命令将删除隔离区:

      xattr -d com.apple.quarantine /path/to/file
      

      【讨论】:

        【解决方案6】:

        这个错误似乎重新出现(2010 年 11 月注意到)

        我认为涉及的 WebKit 错误报告是 this onethis。从本质上讲,它归结为在执行If-Modified-Since 时不正确的缓存处理,它得到了304 响应。

        【讨论】:

          【解决方案7】:

          具有空“src”属性的图像在 Windows-Chrome 下会生成此错误:

          <img src="">
          

          ...而...

          <img>
          

          ...没有。

          我来到这里是因为我的 ajax 结果集正在返回“src”数据,该数据是空的,但 img 仍被插入到页面中。

          【讨论】:

          • 这正是我的情况。
          • @DanDascalescu 报告url() - 即没有 src 地址 - 在您的 CSS 或 javascript 中实际上是相同的东西并产生相同的错误。特别是:background-image: url()
          【解决方案8】:

          我刚刚得到这个并在我的 Mac 上本地解决了它。出于某种原因,有问题的 javascript 文件具有错误的权限。我注意到当我在 firebug 中查看它时,我得到了 403。我希望这对任何人都有帮助。

          【讨论】:

            【解决方案9】:

            我发现我的 css 文件的命名与代理过滤器冲突

            www.dating.com(这不是我的网站)被阻止,我的 css 和 js 文件被称为约会.css 和约会.​​js。过滤器阻止了这一点。也许你们中的一些人就是这种情况,在公司系统上工作。

            【讨论】:

              【解决方案10】:

              这似乎是 Safari 缓存处理策略中的一个错误。

              apache 中的解决方法:

              Header unset ETag
              Header unset Last-Modified
              

              【讨论】:

              • 是的,在 WebKit 浏览器中使用 Last-Modified 时有一个错误。当您发送该标头时,他们似乎对任何静态文件感到困惑。
              【解决方案11】:

              我在使用 css 文件而不是 javascript 时遇到了同样的问题。 (使用 xitami 网络服务器)

              为我解决的问题是在 xitami.cfg 的 MIME 部分下添加:

              css=文本/css

              【讨论】:

                【解决方案12】:

                出现此警告是因为未指定默认脚本类型。尝试将以下指令添加到您的 HTML 文件中:

                &lt;meta http-equiv="content-script-type" content="text/javascript"&gt;

                您可以在此处阅读有关默认脚本规范的更多信息: http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2.1

                【讨论】:

                  【解决方案13】:

                  这是因为文件名中的句点。这很愚蠢,但是任何时候 js 文件名中有句点都会出现此错误,而且我遇到过实际上会阻止 js 文件加载的情况。

                  【讨论】:

                  • 这可能是一个原因,但不是发生此错误的唯一原因。
                  【解决方案14】:

                  您需要使用工具来查看随文件发送的 HTTP 标头,例如 LiveHTTPHeadersHTTPFox 是我使用的。如果从网络服务器发送的文件没有 MIME 类型,或者使用默认 MIME 类型(如 text/plain),则可能是此错误的原因。

                  【讨论】:

                    【解决方案15】:

                    似乎是 safari / webkit 中的一个错误。也许this one,或any of these。尝试升级您的 Safari。如果没有更新的稳定版本,请尝试 4 beta。

                    【讨论】:

                    • 看看下一个真正解决问题的答案。这可以解释,因为 src ="" 去获取当前页面作为图像。如果您有 src ="" 只需删除 src 属性
                    猜你喜欢
                    • 2010-11-26
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2017-05-12
                    • 2012-01-16
                    • 2017-06-03
                    • 2014-07-15
                    • 1970-01-01
                    相关资源
                    最近更新 更多