2012-07-22 75 views
3

我已经发现了几个网站的网络解释一个Rails应用程序的DIR结构,但我仍然不明确的几个,主要是:了解Rails 3个的目录结构

/vendor 
/lib 
/public 

我应该去哪里?我想知道最佳做法。例如,我有jQuery插件,如果这些插件位于/ vendor? /上市?/lib目录?我已经从不同的网站在线阅读了所有3个。

感谢

+0

http://www.tutorialspoint.com/ruby-on-rails/rails-directory-structure.htm – gabrielhilal 2012-07-22 20:17:12

回答

6

卖方为第三方代码/库,所以,是的,jQuery插件的好地方。

公共资源用于静态资产,这些资产并不受益于资产管道。

Lib通常用于包含不是特定于应用程序的代码。即您在多个应用程序中使用的东西。有一种将域逻辑放在lib中的趋势,例如不基于ActiveModel的域类。加里伯恩哈特(https://www.destroyallsoftware.com/)是这方面的支持者。

+0

感谢您的快速回复。你已经与我确认了一些事情,所以我明白它现在如何更好一点。我只是想确保我把所有的东西都放在应该去的地方。 – 2012-07-22 21:07:43

4

通常,web服务器(nginx,apache等)直接提供/ public的内容而无需使用rails干涉,所以传统上所有静态资产(图像,样式表,JavaScript等)都放在这里。你仍然可以把你的JavaScript放在那里,但它有点老套。

Rails 3.1引入了asset pipeline这改变了所有这一切。应用程序/资产,资源库/资产和供应商/资产中的资产均通过资产管道获取服务器。通常,您的应用程序特定资产将进入应用程序/资产,第三方库(如查询插件)将进入供应商/资产。如果你正在开发自己的一套jQuery插件,你可能会把它们放在lib/assets中。不管你把它放在哪里,资产都会“有效” - 这只是一个组织问题。

宝石也可以有自己的资产的文件夹,例如jQuery的轨道宝石捆绑jQuery和允许您的应用程式提供了jQuery的,而无需实际将其复制到您的应用程序。我觉得这比把东西放在供应商/资产中更简单。

+0

感谢您的评论! – 2012-07-22 21:08:09