Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如何在rails应用程序中最好地组织资产_Css_Ruby On Rails_Ruby On Rails 3_Asset Pipeline_Organization - Fatal编程技术网

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

Css 如何在rails应用程序中最好地组织资产,css,ruby-on-rails,ruby-on-rails-3,asset-pipeline,organization,Css,Ruby On Rails,Ruby On Rails 3,Asset Pipeline,Organization,随着我在我的应用程序上不断取得进展,我的样式表文件夹很快就被占用了。我已经阅读了资产管道上的rails指南,并在互联网上搜寻了一个有信誉的来源,但我仍然在“rails之路”上不知所措,无法保持一切整洁 在我尝试自己开发一个系统之前,我希望能从你们那里得到一些建议 对于资产组织,是否有众所周知的“最佳实践”?如果没有,什么对您有效? 到目前为止,我的设置如下: app/assets/stylesheets > application.css,application RESPONSIVE.c

随着我在我的应用程序上不断取得进展,我的样式表文件夹很快就被占用了。我已经阅读了资产管道上的rails指南,并在互联网上搜寻了一个有信誉的来源,但我仍然在“rails之路”上不知所措,无法保持一切整洁

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

对于资产组织,是否有众所周知的“最佳实践”?如果没有,什么对您有效?

到目前为止,我的设置如下:

app/assets/stylesheets >
application.css,application RESPONSIVE.css

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

controller.scss,控制器响应

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

lib/assets/stylesheets >
reset.css

在application.css中,我使用

*= require reset
*= require_tree .
*= require_self
然而,为了获得所有样式,我一直在想,如果需要,是否最好将self置于tree之前,作为覆盖主要样式的一种方法?

对于资产组织,是否有众所周知的“最佳实践”

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

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

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

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

如果需要,将self置于tree之前作为覆盖主要样式的方法是否更好

css是所谓的清单文件。现在,用树来切换self不会有什么特别的区别,但它会改变它在加载序列中的位置。考虑这个…

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

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

还有steve klein说的话

希望这对你有所帮助

更新: 我试着在github上寻找一些例子,但我发现所有的应用程序都太简单了,没有为大量文件显示任何高级组织


我鼓励你们去看看这个网站。我在那里看过一些项目,它们看起来很复杂,足以让你产生足够的兴趣。特别是,看看这个。话语由Stack Overflow的联合创始人杰夫·阿特伍德(Jeff Atwood)共同创立。我想这是不言而喻的;)

我个人认为应该避免在清单文件中包含指令以外的任何内容。因此,甚至不需要
require\u self
。否则,清单文件只是一个很好的中心位置,您可以在其中标识与项目关联的所有资产。我最好在我的每一个PHP脚本中都包含一个又一个…谢谢!我不知道。你知道有没有目录的例子,有良好的资产组织,我可以看看吗?就子目录而言,人们只是发明了他们自己的风格,或者他们的风格是一种将某些风格与另一种风格区分开来的惯例。谢谢!我知道你说的一切,接受链轮部分,在戈纳,等我回家后再调查一下。对于样式表放置的逻辑位置,您有什么建议吗?我制作的rails web应用都没有这么大,我只是将所有样式表都保存在app/assets/stylesheets文件夹中。哦,很抱歉,是的,这就是rails的发展方向。@如果您觉得有太多单独的自定义样式表堆满了您的
/app/assets/stylesheets
文件夹,我会告诉您的,您始终可以在子文件夹中组织工作表,然后使用
require\u目录
指令将其包含在清单文件中。我强烈建议您阅读资产管道上的。@stevelkein yea这就是我的想法,我只是想知道是否有一种通用的方法将这些样式划分到它们给定的子文件夹中。例如,所有响应代码是否都应该放在一个控制器中,所有控制器是否应该放在另一个控制器中?我试着在github上寻找示例,但我发现所有的应用程序都太简单了,并且没有显示任何用于大量文件的高级组织。我刚刚更新了我的帖子,为您提供了一个很好的rails项目源。我相信你会感兴趣的。享受吧!