【问题标题】:Store front-end features in Rails?在 Rails 中存储前端功能?
【发布时间】:2010-08-25 06:06:26
【问题描述】:

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

我想添加一个拥有自己的 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 模式。

【问题讨论】:

    标签: javascript ruby-on-rails css image


    【解决方案1】:

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

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

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

    /web/images
    /web/javascripts
    /web/stylesheets
    
    /mobile/images
    /mobile/javascripts
    /mobile/stylesheets
    
    /admin/etc
    

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

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

    以colorbox为例:

    而不是:

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

    我们有:

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

    【讨论】:

    • 然后手动加载它们:“stylesheet_link_tag '/web/libs/colorbox/colorbox.css'”?
    • 其实就是用asset_packager把所有东西组合成少量的文件,用自定义的stylesheet_link_tag来处理。
    【解决方案2】:

    是的,斯洛博丹·科瓦切维奇是对的,

    你可以组织到任何地方,

    另一种方法是,

    stylesheet_link_tag "#{RAILS_ROOT}/calendar/stylesheets/main.css"
    

    当您遇到问题时,请按照此程序进行

    stylesheet_link_tag '/calendar/stylesheets/main.css'
    

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

    从 helper 调用每个文件并在 rails 上使用它。

    【讨论】:

      【解决方案3】:

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

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

      stylesheet_link_tag '/calendar/stylesheets/main.css'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-26
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 2020-03-23
        • 1970-01-01
        • 2014-02-12
        相关资源
        最近更新 更多