如何最好地组织rails应用程序中的资产

时间:2015-07-16 01:51:47

标签: css ruby-on-rails ruby-on-rails-3 asset-pipeline organization

当我继续在我的应用程序上取得进展时,我的stylesheets文件夹很快就会超支。我已经阅读了资产管道上的rails指南,并在互联网上搜索了一个声誉良好的来源,并且仍然在“轨道方式”上处于亏损状态,以保持一切整洁。

在我自己尝试开发系统之前,我希望能得到你们的一些建议。

在资产组织方面,有一个众所周知的“最佳实践”吗?如果不是,那对你有用的是什么?

截至目前,我的设置是:

app/assets/stylesheets >

application.css,application-RESPONSIVE.css

任何特定于正文,容器,导航栏,页脚的代码

controller.scss,controller-RESPONSIVE

*特定于该控制器的任何代码

lib/assets/stylesheets >

reset.css

在application.css中我使用

*= require reset
*= require_tree .
*= require_self

要获得所有样式我也一直想知道在 tree 之前设置 self 是否更好,以便在需要时覆盖主要样式是吗?

1 个答案:

答案 0 :(得分:3)

  

是否有一个众所周知的"最佳实践"谈到资产组织?

资产组织:

在Rails中,管道资产可以放置在三个位置之一的应用程序内: app / assets, lib / assets或 vendor /资产。

1) app / assets适用于应用程序拥有的资产,例如自定义图像,JavaScript文件或样式表。

2) lib / assets适用于您自己的库'代码并不真正适合应用程序的范围或跨应用程序共享的库。

3)供应商 / assets适用于外部实体拥有的资产,例如JavaScript插件和CSS框架的代码。

  

如果需要,在树之前设置自我作为覆盖主要样式的方法是否更好?

application.css 是所谓的清单文件。现在,通过用树切换自我并不会产生任何差别,但它会改变它在加载序列中的位置。考虑一下......

将资产放置在逻辑位置后,您可以使用清单文件告诉Rails(通过Sprockets gem)如何将它们组合成单个文件。这些清单文件包含指令 - 指示Sprockets为了构建单个CSS或JavaScript文件而需要哪些文件。

其他信息:

Rails所做的另一件事是,在终端中运行rails generate命令时为您生成样式表。创建新控制器后,您将在资产中看到一个带有控制器名称的样式表。它看起来像app / assets / stylesheets / newcontroller.css.scss

另外,史蒂夫克莱因说的话。

希望这可以帮助你。

更新:

  

我已经尝试在github上寻找示例,但我发现的所有应用都过于简单,并且没有为大量文件显示任何高级组织。

我建议您查看Open Source Rails网站。我看过那里的一些项目,看起来很复杂,足以引起你的兴趣。特别是,请看Discourse app。 Discover由Stack Overflow的联合创始人Jeff Atwood共同创立。我想这说话本身;)