【问题标题】:Referencing different stylesheets in different views in Rails在 Rails 的不同视图中引用不同的样式表
【发布时间】:2013-01-19 14:58:00
【问题描述】:

我想为我的 Rails 应用程序的不同部分使用一组不同的样式表。例如,我想为登录页面设置一组样式表,为后端admin 页面设置不同的样式表,为登录的account 页面设置另一组样式表。

我已经将样式表组织到名为 account、home 和 admin 的文件夹中,并且我知道如何在 application.css 中指定只编译一个文件夹。

*= require_self
*= require_tree ./account
*/

我的问题是,我如何指定如果用户正在查看管理页面或主页,则管理或主文件夹中的样式表应该是唯一引用的样式表?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 sprockets


    【解决方案1】:

    没有办法创建条件样式表,因为在生产环境中它是在部署时编译的。

    您必须创建单独的样式表,例如默认的 application.css:

    /*
     *= require_self
     *= require some_stylesheet
    */
    

    然后分开,admin.css

    /*
     *= require_self
     *= require some_admin_stylesheet
    */
    

    然后在生产环境配置延伸线:

    config.assets.precompile += ['application.css', 'admin.css']
    

    接下来,创建单独的布局/或创建有条件的包含:

    <%= stylesheet_link_tag    "admin" %>
    

    【讨论】:

    • 那么将我的应用程序分成这些单独的部分的最佳方法是为每个部分创建单独的布局文件和顶级样式表?这似乎不是很干燥。
    • 您可以跳过布局,只需根据控制器或您想要的任何内容创建有条件的样式表...但您不能在清单文件中添加条件。
    • 如果您愿意,您可以将此行 Rails.application.config.assets.precompile += ['admin.css'] 添加到 config/initializers/assets.rb 中,而不是将文件添加到每个环境中,然后您就完成了。 (导轨 4.2.5)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    相关资源
    最近更新 更多