【发布时间】:2012-05-08 10:12:30
【问题描述】:
我 just asked a question 关于我的 javascript 中的“非法字符”。
那里的答案让我发现在Rails资产管道中压缩javascript插入各种非法字符存在问题。
我在帖子中收到的错误是:
SyntaxError: Invalid character '\u0008'
我发现不使用压缩会导致这种情况完全消失...但我想要压缩!该错误是使用 Rails 默认的 uglifer gem 发现的。我想这可能是那个特定压缩 gem 的错误,所以我尝试按照Rails docs 的指示使用其他压缩器。我得到了非常相似但不同的错误:
Uglifier: SyntaxError: Invalid character '\u0008'
Closure: SyntaxError: Invalid character '\u0190'
YUI: SyntaxError: Invalid character '\u0025'
我尝试查看这些的最小化代码,但由于“无效字符”每次都不同,这让我相信其他问题。
Here 是一个示例压缩 JS 文件。有人可以在这里指出我正确的方向吗?
【问题讨论】:
-
我的直觉告诉我,客户端正试图像使用纯数据一样使用压缩数据。
-
文件好像被gzip了两次。
-
@Rob,你能解释一下吗?看着cloudfront.giantuser.com/assets/…,好像只压缩过一次
-
@coneybeare 我注意到错误控制台中显示了“奇怪”字符。所以,我使用了
wget http://cloudfront.giantuser.com/assets/application-37b1a9bb0cb78bb8680fcf0682eb769d.js.gz。less <file_name>显示了一组奇怪的字符,zless <file_name>显示了预期的代码。所以,我相信响应被压缩了两次(由于Content-Encoding: gzip标头而解压缩了一次)。 -
不确定是否是问题所在。该页面只有一个 JS 文件,其他 JS 工作正常。这意味着 JS 在文件中途存在解释问题。我发现我的 Cufon 的东西不能正常工作......我会去那里看看
标签: javascript ruby-on-rails compression asset-pipeline ruby-on-rails-3.2