3

我在网上找到了几个解释 Rails 应用程序的 DIR 结构的网站,但我仍然不清楚一些,主要是:

/vendor
/lib
/public

应该去哪里?我想知道最佳实践。例如,我有 jQuery 插件,它们应该位于 /vendor 中吗?/上市?/库?我已经从不同的网站在线阅读了所有 3 个。

谢谢

4

2 回答 2

5

供应商是第三方代码/库,所以,是的,是 jQuery 插件的好地方。

Public 用于静态资产,即在资产管道中没有任何好处的东西。

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

于 2012-07-22T20:12:05.093 回答
4

通常 /public 的内容直接由 Web 服务器(nginx、apache 等)提供,而无需 Rails 的干预,因此传统上您的所有静态资产(图像、样式表、javascript 等)都放在此处。你仍然可以把你的javascript放在那里,但它有点过时了。

Rails 3.1 引入了改变这一切的资产管道。app/assets、lib/assets 和 vendor/assets 中的资产都通过资产管道启动服务器。通常,您的应用程序特定资产将放在 app/assets 中,而 3rd 方库(例如查询插件)将放在 vendor/assets 中。如果您正在开发自己的一组 jquery 插件,您可以将它们放在 lib/assets 中。不管你把它们放在哪里,资产都会“工作”——这只是一个组织问题。

Gems 也可以有自己的资产文件夹,例如 jquery-rails gem 捆绑 jquery 并允许您的应用程序提供 jquery 而无需实际将其复制到您的应用程序中。我发现这比把东西放在供应商/资产中更整洁。

于 2012-07-22T20:17:05.510 回答