在Rails中存储前端功能?

时间:2010-08-25 06:06:26

标签: javascript ruby-on-rails css image

在公共文件夹中,我们有样式表,javascripts和图像。

我想添加一个拥有自己的css,js和图像的前端功能,但根据这个层次结构,我必须像这样存储它们:

stylesheets/calendar/main.css
javascripts/calendar/cal.js
javascripts/calendar/cal2.js
images/calendar/front.jpg
images/calendar/button1.jpg
images/calendar/button2.jpg
images/calendar/button3.jpg

我不喜欢我将功能分开。

有没有办法组织每个功能的文件?

calendar/stylesheets/main.css
calendar/javascripts/cal.js
calendar/javascripts/cal2.js
calendar/images/front.jpg
calendar/images/button1.jpg
calendar/images/button2.jpg
calendar/images/button3.jpg

按照OOP模式,这将是一个更好的结构。

3 个答案:

答案 0 :(得分:3)

正如其他人所说,你可以做任何你喜欢的事情。

这是我们目前使用的系统:

将文件放在与适用的“布局”相对应的目录中:

/web/images
/web/javascripts
/web/stylesheets

/mobile/images
/mobile/javascripts
/mobile/stylesheets

/admin/etc

顶级目录(/ images / javascripts / stylesheets)用于真正常见的元素(例如jquery,css reset脚本和标准徽标)。

客户端库包保存在自己的目录中,而不是分散到标准的Rails目录中。这极大地有助于长期维护。

以colorbox为例:

而不是:

 /javascripts/colorbox.js
 /stylesheets/colorbox.css

我们有:

 /web/libs/colorbox/colorbox.js
 /web/libs/colorbox/colorbox.css

答案 1 :(得分:2)

Ya,Slobodan Kovacevic是对的,

你可以组织到任何地方,

另一种方法是,

stylesheet_link_tag "#{RAILS_ROOT}/calendar/stylesheets/main.css"
当你遇到问题

时,请按照以下步骤操作

stylesheet_link_tag '/calendar/stylesheets/main.css'

你需要使用Helper方法以另一种方式优化它。

从帮助程序调用每个文件并在rails上使用它。

答案 2 :(得分:1)

您可以以任何方式组织公用文件夹中的内容。唯一不同的是,当您使用一些Rails助手处理公共文件夹中的文件路径时,您必须指定这些文件的位置(如果您将它们移出默认位置)。

例如,在stylesheet_link_tag的情况下,您必须执行以下操作:

stylesheet_link_tag '/calendar/stylesheets/main.css'