【问题标题】:Rails application with Ext JS as frontend and need compression of scripts使用 Ext JS 作为前端并需要压缩脚本的 Rails 应用程序
【发布时间】:2009-05-29 14:57:42
【问题描述】:
我有一个使用 Ext JS 作为前端的 rails 应用程序。我在运行应用程序时没有问题。但由于 ext-all.js 体积庞大,加载需要更多时间。我尝试构建一个自定义 Ext JS,但这并没有对 Ext JS 脚本的大小产生太大影响。
自从我使用 Rails 2.x 以来,我一直在尝试使用 Rails 缓存。对于普通的 java 脚本文件,缓存没有问题,但是对于 Ext JS 脚本,它会加载,但我得到一些 DOM 对象错误,例如:Ext is not defined。我正在寻找的是 Ext JS 脚本的压缩版本或一些 gzip 模式。我尝试了谷歌搜索并找到了各种尝试压缩的选项。但我还没有破解它。
谁能提供一些关于如何解决压缩问题的建议?
【问题讨论】:
标签:
ruby-on-rails
caching
compression
extjs
【解决方案2】:
Ext 已经在生产文件中被缩小,所以进一步缩小是徒劳的,你应该只缩小你自己的脚本。
您可以研究一下 CacheFly,鉴于它的分布式特性,它可以更快地向您的客户提供 Ext。
唯一的其他选择确实是在 Apache 等中使用 mod_gzip 进行 HTTP 请求级别压缩。
【解决方案3】:
ExtJs 的大小并不比大多数现代网站大多少(如果有的话)。它与您的脚本一起小于 1MB。而且它只加载一次。我认为,以目前的网络速度,它对客户几乎没有影响。
【解决方案4】:
它实际上是您的网络服务器的配置。
你应该为 Apache 使用类似的东西:
FileETag MTime
ExpiresActive On
ExpiresDefault "access plus 30 days"
AddOutputFilterByType DEFLATE text/html application/javascript text/javascript text/css
它将确保这些资产被压缩,除非另有说明 - 可缓存 30 天。