分享

RubyonRails 优化之:拆分静态文件

 昵称xEu4P 2007-01-17

RubyonRails 优化之:拆分静态文件

@由 DIrk 发表于 2007-01-04 Thursday

影 响 RubyonRails 成为 Web 开发主流解决方案的最大阻力因素依然是执行效率问题,这应该是 Ruby 语言本身决定的。目前来说,除了使用可以使用合理的 cache 机制进行优化,我们还有一个非常容易做到的增效措施:把你站点中的静态文件拆分出去,使用高性能 Web 服务器专门处理静态文件,让 Rails 的 router 从无谓的文件服务中解脱出来。

这里所说的静态文件,主要是指 ROR 应用中用到的,但不需要 Rails 解释执行的原始文件,比如图片文件、CSS 风格定义文件、Javascript 代码文件等等,只要是可以离开 Rails 独立存在的,都可以归为静态文件。每次向 Rails 请求文件,Rails 都会去查找相应的 router,并进行一定的操作,对于静态文件,Rails 只是一个单纯的 Web 服务器而已,那我们何不使用更加高效的软件代替 Rails 执行这部分功能呢。

ROR 有一个设置开关,可以自定义静态文件的引用起始地址:

ActionController::Base.asset_host = "http://assets."

这个选项可以设置在 config/environment.rb 文件中,这样你的开发环境和产品环境使用同样的配置参数。

进行如上配置后,你可以使用专门为静态文件进行优化的 Web 服务器提供对静态文件的服务,比如 Lighttpd、thttpd 等。Rails 只用于对动态请求的解析和执行。

需要注意的是,如果想要让你的 Rails 应用方便这种 asset_host 的调整,你的源代码中应该充分使用 Rails 中 ActionView 提供的链接帮助函数,不要将静态文件的引用地址 hardcode 到代码中,诸如:

  • ActionView::Helpers::AssetTagHelper::image_tag —针对图片的引用
  • ActionView::Helpers::AssetTagHelper::javascript_include_tag —针对Javascript的引用
  • ActionView::Helpers::AssetTagHelper::stylesheet_link_tag —针对CSS文件的引用
  • ActionView::Helpers::FormTagHelper::image_submit_tag —表单图片按钮的引用
  • ActionView::Helpers::UrlHelper::link_image_to —带链接的图片引用

更多信息可以好好研究 Rails API 文档;比较重要的一点就是,ROR 为 Web 开发定制了大量有效的方法和规则,我们只要遵守,就可以获得预料不到的好处!

标签:rubyonrails优化静态文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多