在Rails中管理插件的资产

时间:2014-10-04 12:23:21

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我只想弄清楚在Rails中管理插件资产的最佳方法是什么。 对于Eg。我们来考虑一下Bootstrap。

我知道有“供应商”目录,但即便如此

我喜欢保持目录结构:

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 个答案:

答案 0 :(得分:1)

Rails有一个用于添加第三方资产的特殊目录。它被称为供应商。在其下方,您会找到vendor/assets,其中包含 javascripts stylesheets 子目录。因此,请使用它代替app/assets。后者是你应该保存自己文件的地方。

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

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

//= require jquery

如果您想更进一步并强制执行自己的目录结构,则必须更改Rails'配置:

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

您可以在Rails guides

上详细了解相关信息

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

相关问题