2014-10-04 101 views
0

我只是想弄清楚在Rails中管理插件的资产的最佳方式是什么。例如: 我们来考虑Bootstrap。在Rails中管理插件的资产

我知道有“供应商”目录为,但即使有

我喜欢让下面的目录结构:

App 
|-- assets 
| |-- plugins 
| | |-- bootstrap 
| | | |-- fonts 
| | | |-- css 
| | | | |-- bootstrap.css 
| | | | |-- bootstrap.min.css 
| | | |-- js 
| | | | |-- bootstrap.js 
| | | | |-- bootstrap.min.js 

我不骗按照下面的目录结构:

App 
|-- assets 
| |-- fonts 
| |-- css 
| | |-- application.css 
| | |-- bootstrap.css 
| | |-- bootstrap.min.css 
| | |-- common-style.css 
| |-- js 
| | |-- application.js 
| | |-- bootstrap.js 
| | |-- bootstrap.min.js 
| | |-- common-script.css 

正如您在上面注意到的那样,现在如果您开始添加插件,文件将进入常规文件夹,而不是将所有资产相对于插件保持在一起。如果不分组,它会看起来凌乱,不是吗?

我知道有“供应商”目录甚至还有我喜欢让下面的目录结构:

|-- App 
|-- vendor 
| |-- assets 
| | |-- javascripts 
| | |-- stylesheets 
| |-- bootstrap 
| | |-- fonts 
| | |-- css 
| | | |-- bootstrap.css 
| | | |-- bootstrap.min.css 
| | |-- js 
| | | |-- bootstrap.js 
| | | |-- bootstrap.min.js 

我不喜欢遵循以下的目录结构:

|-- App 
|-- vendor 
| |-- fonts 
| |-- assets 
| |-- stylesheets 
| | |-- bootstrap.css 
| | |-- bootstrap.min.css 
| | |-- iCheck.css 
| |-- javascripts 
| | |-- bootstrap.js 
| | |-- bootstrap.min.js 
| | |-- iCheck.js 

回答

1

Rails有用于添加第三方资产的特殊目录。它叫做供应商。在它下面你会发现vendor/assets,其中包含javascripts样式表子目录。所以用这个代替app/assets。后者是你应该保存自己的文件的地方。

如果您使用的是Bootstrap之类的东西,并且这对大多数插件都是正确的,那么它就更容易了。大多数框架都打包成了宝石。这意味着您不必担心手动添加资产文件,因为资产管道可以为您处理所有这些。最多只需将文件包含在清单中。

一个JavaScript文件中的application.js,例如:

//= require jquery 

如果你想走得更远了一步,并执行自己的目录结构,你将不得不改变Rails的配置:

config.assets.precompile += %w(vendor/custom_dir/*.jpg) 
config.assets.precompile += %w(vendor/custom_dir/*.js) 

你可以阅读更多有关这对Rails guides

你可能还会发现this issue很有帮助。

+0

我已经稍微简单地解释了它甚至应该如何查看“供应商”目录。 – Syed 2014-10-04 12:44:59

+0

在这种情况下,您需要更改Rails配置。我更新了我的答案。 – Mohamad 2014-10-04 14:01:25