【问题标题】:Android (5.0.1) Chrome is deleting javascript whitespace and comments, is there a way to stop this?Android (5.0.1) Chrome 正在删除 javascript 空白和评论,有没有办法阻止这种情况?
【发布时间】:2015-02-27 15:03:28
【问题描述】:

除了使调试几乎不可能之外,这种新行为还破坏了我使用 heredoc javascript 技术 (Javascript heredoc) 的网站,这取决于使用 cmets。

我不确定我是否无意中打开了此功能(这种情况很少见),或者这是否是 Android 的一项新功能。我很担心,因为我在许多不同的网站上使用了 heredoc javascript 技术,这种行为会破坏这些网站。

有其他人经历过吗?

是否有一种解决方法可以让服务器停止这种情况?

heredoc javascript 技术有替代方法吗?

【问题讨论】:

标签: javascript android comments whitespace heredoc


【解决方案1】:

我是 Google 压缩代理的技术主管。我们的代理确实从 JS 文件中删除了 cmets,这应该是安全的 - 尽管有一些工具(在我看来 :-) 依赖于 JS cmets 来工作。一般来说,没有很好的方法来检测这一点,所以我们依赖 Cache-Control: no-transform 标头。如果您对避免这种情况的更好方法有建议,我将不胜感激。

【讨论】:

    【解决方案2】:

    这个问题是由 chrome 数据压缩 (https://developer.chrome.com/multidevice/data-compression) 引起的。感谢Slaks 的提醒,否则我会错过它。

    一旦我将其关闭 - 它位于 Chrome 设置 - 减少数据使用量(在内容设置之后和关于 Chrome 之前),我的网站又开始工作了。

    为了让其他喜欢我的用户甚至不知道他们正在使用它, 我添加了以下代码,我在下面的两个参考资料中找到了:

    <FilesMatch "\.(css|js)$">
        <IfModule mod_headers.c>
            Header set Pragma "public"
            Header set Cache-Control "no-transform,public, must-revalidate, proxy-revalidate"
        </IfModule>
        FileETag MTime Size
    </FilesMatch>

    重要的部分是通过 Cache-Control 指令告诉 Google 在 javascript 上“不转换”。我对 .js 和 .css 文件都这样做了,不过我以后可能会添加其他类型。

    而且,我将 headers.load 添加到 mods-available 中,以使其具有 mod_headers。

    http://mobiforge.com/design-development/setting-http-headers-advise-transcoding-proxies

    Apache -Caching: How to Configure Response headers in Apache 2+.

    重启 Apache 后,一切正常。

    关于第三个问题,javascript heredoc方法是否有解决方法,我真的没有答案,但也许这种情况表明这种方法并非没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 2022-11-23
      • 2021-09-24
      • 2021-10-15
      相关资源
      最近更新 更多