我在网上发现了几个解释Rails应用程序的DIR结构的网站,但我仍然不清楚,主要是:
/vendor
/lib
/public
应该去哪里?我想知道最佳做法。例如,我有jQuery插件,它们应该位于/ vendor中吗? /上市? / lib目录?我已经在线阅读了不同网站的所有3个。
由于
答案 0 :(得分:5)
供应商是第三方代码/库,所以,是的,jQuery插件的好地方。
公共用于静态资产,这些资产不会从资产管道中获益。
Lib通常用于包含不是特定于应用程序的代码。即您在多个应用中使用的内容。有一种趋势是将域逻辑置于lib中,例如域类不基于ActiveModel。 Gary Bernhardt(https://www.destroyallsoftware.com/)是这方面的支持者。
答案 1 :(得分:4)
通常,/ public的内容由web服务器(nginx,apache等)直接提供,无需rails的干预,所以传统上所有的静态资产(图像,样式表,javascripts等)都在这里。你仍然可以把你的javascript放在那里,但它有点老式。
Rails 3.1引入了asset pipeline,它改变了所有这一切。 app / assets,lib / assets和vendor / assets中的资产都可以通过资产管道获得服务器。通常,您的应用程序特定资产将进入app / assets,第三方库(例如查询插件)将进入供应商/资产。如果您正在开发自己的一组jquery插件,可以将它们放在lib / assets中。无论你把它们放在哪里,资产都会“起作用” - 这只是一个组织问题。
Gems也可以拥有自己的资产文件夹,例如jquery-rails gem捆绑jquery,并允许你的应用程序提供jquery而无需将其实际复制到你的应用程序中。我觉得这比把东西放在供应商/资产中更整洁。