【问题标题】:Using different assets for a different namespace in Rails 4在 Rails 4 中为不同的命名空间使用不同的资产
【发布时间】:2016-06-06 10:26:51
【问题描述】:

我有一个 Rails 4 应用程序,它在整个应用程序中使用 app/assets/javascriptsapp/assets/stylesheets 中的资产。但是,我为应用程序的管理部分创建了一个嵌套资源。我希望管理界面与最终用户看到的不同(不同的布局、不同的资产)。

我尝试在 application.css 文件中更改以下内容:

*= require_tree .

*= require_directory

但整个应用似乎仍在使用相同的资源。谁能告诉我如何为 Rails 4 应用程序的不同部分使用不同的资产?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这里的问题不在于您如何在资产清单中包含文件,而在于您对应用程序的公共和私有/管理部分使用相同的清单。

    您应该创建一个名为 app/assets/stylesheets/admin.css 的新文件,并在其中包含管理布局所需的资产。也许是这样的:

    *= require_tree ./admin
    

    然后将现有的application.css 更改为不使用require_tree .,而是使用更具体的内容,例如:

    *= require_tree ./main
    

    并将所有公共 CSS 文件移动到样式表目录中的该目录中。

    最后,您需要为您的管理页面创建一个新布局,或修改应用程序布局,以便样式表和 javascript 包含根据您正在使用的应用程序的哪个部分是动态的。

    为简单起见,您可能只想为管理部分使用新布局,称为 app/views/layouts/admin.html.erb,然后更新应用程序页面的任何控制器以使用 layout :admin

    【讨论】:

    • 正是我需要的!谢谢:)只有一条评论,你写了require tree ./admin,但它应该是require_tree ./admin才能正常工作。
    【解决方案2】:

    我知道这三种组合

     *= require_tree . # for base asset directory
     *= require_tree ./path # a specific path
     *= require filename # some file
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多