加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用Rails 3管理资产(在Heroku上)(Jammit,Asse

发布时间:2020-12-16 21:13:50 所属栏目:百科 来源:网络整理
导读:我感兴趣的是在Rails 3.0.x中管理资产的不同工具的优缺点(特别是在Heroku上). 关于这个主题已经有7万个问题了,但同时还有一些新工具可用. 我对这些工具特别感兴趣: Jammit AssetHat Rack PageSpeed Jammit似乎可以做AssetHat可以做的所有事情,也可以更长时
我感兴趣的是在Rails 3.0.x中管理资产的不同工具的优缺点(特别是在Heroku上).

关于这个主题已经有7万个问题了,但同时还有一些新工具可用.

我对这些工具特别感兴趣:

> Jammit
> AssetHat
> Rack PageSpeed

Jammit似乎可以做AssetHat可以做的所有事情,也可以更长时间使用.那么AssetHat在哪里适合?

Rack PageSpeed似乎通过直接处理服务器响应来动态执行所有操作.这样做会遇到任何性能问题吗?您会推荐其他两种解决方案吗?

解决方法

嘿那里,我是AssetHat的作者.缩小和连接是最容易实现的性能提升之一;这些功能在Jammit,AssetHat和rack-pagespeed中很常见. Rails已经支持连接很长一段时间了(虽然它是在运行时完成的,而不是在部署期间完成的),并且Rails 3.1在部署期间支持缩小和连接也就不足为奇了.

剩下的功能使每个资产经理都感兴趣.例如,如果要将图像和字体文件直接嵌入到样式表中,Jammit非常有用.如果要将所有优化保留在完全独立的层中,rack-pagespeed也很方便.

将资源内联到CSS非常适用于样式表不经常更改的静态页面.但是,如果您的站点处于活动开发状态,并且样式表发生了一些变化,则用户的浏览器必须重新下载整个内容 – 包括可能没有更改的内嵌图像和字体.这取决于项目的性质.

如果您的资产太大而无法内联或连接,AssetHat有助于优化CDN和并行加载:

>无论是Google’s CDN,cdnjs(使用亚马逊的服务器)还是您选择的其他CDN,CDN都有很大的优势.例如,只需添加<%= include_js:jquery%>您的布局(以及配置文件中的版本号)从Google的CDN加载jQuery.如果您处于开发模式并且拥有jQuery的本地副本,则可以加载简单的离线开发.
> AssetHat可以重写样式表的图像URL以使用您的CDN.这将从您的config.action_controller.asset_host设置中读取,并在部署时完成.您的原始CSS保持不变.
>如果你要加载几个JS文件,有时加载它们比连接它们更快(即强制它们串行加载).您可以轻松打开LABjs模式:<%= include_js'big-file-1',...,'big-file-n',:loader => :lab_js%>.如果您在本地没有LABj的副本,或者如果您正在生产中,则LABjs将通过cdnjs从Amazon的服务器加载.

通过使用谷歌或亚马逊等CDN,您的用户可以并行加载更多资产(因为有更多主机名),享受更快的速度,有时甚至根本不需要下载资产(例如,如果他们已经加载了谷歌的jQuery副本通过别人的网站).

我在Heroku上使用AssetHat,设置我的部署脚本,只需运行rake asset_hat:minify(缩小和连接CSS / JS),将这些更改提交到我的存储库,然后进行实际部署.

如果你还没有看过这些,你可能会对以下内容感兴趣:

> a longer walkthrough of AssetHat’s features
> the official website
> the technical readme
> the extensive docs

如果您需要帮助进行设置或有任何其他问题,请随时在GitHub(rondevera)或Twitter(@ronalddevera)上给我发消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读