如何最好地在 Rails 应用程序中组织资产

the*_*ine 5 css ruby-on-rails organization ruby-on-rails-3 asset-pipeline

随着我继续在我的应用程序上取得进展,我的样式表文件夹很快就会溢出。我已经阅读了关于资产管道的 rails 指南,并在互联网上搜索了一个有信誉的来源,但仍然在“rails 方式”上不知所措,以保持一切整洁。

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

在资产组织方面是否有众所周知的“最佳实践”?如果没有,什么对你来说效果很好?

截至目前,我的设置是这样的:

app/assets/stylesheets >
Run Code Online (Sandbox Code Playgroud)

application.css, 应用程序-RESPONSIVE.css

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

controller.scss,控制器响应

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

lib/assets/stylesheets >
Run Code Online (Sandbox Code Playgroud)

重置.css

在 application.css 我使用

*= require reset
*= require_tree .
*= require_self
Run Code Online (Sandbox Code Playgroud)

然而,为了获得所有样式,我也一直在想,如果需要,在之前设置self作为覆盖主要样式的方法是否更好?

Tim*_*dov 3

\n

在资产组织方面是否有众所周知的“最佳实践”?

\n
\n\n

资产组织:

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n
\n

如果需要的话,最好将 self 设置在 tree 之前作为覆盖主要样式的方法吗?

\n
\n\n

application.css就是所谓的清单文件。现在,通过将 self 与 tree 切换不会产生任何区别,但它会改变它在加载序列中的位置。考虑一下这个...

\n\n

一旦您\xe2\x80\x99将资产放置在其逻辑位置,您就可以使用清单文件告诉Rails(通过Sprockets gem)如何将它们组合成单个文件。这些清单文件包含指令 - 告诉 Sprockets 需要哪些文件才能构建单个 CSS 或 JavaScript 文件的指令。

\n\n

附加信息:

\n\n

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

\n\n

还有史蒂夫·克莱因所说的。

\n\n

希望这可以帮助你。

\n\n

更新:

\n\n
\n

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

\n
\n\n

我鼓励您查看Open Source Rails网站。我看过那里的一些项目,它们看起来足够复杂,足以让你感兴趣。特别是看看Discourse 应用程序。Discourse 由 Stack Overflow 联合创始人杰夫·阿特伍德 (Jeff Atwood) 联合创立。我想这不言而喻;)

\n