单独的CSS文件夹为独立的Rails控制器(Separate CSS Folders for Sep

2019-10-21 03:12发布

有没有办法有单独的轨道控制器单独的CSS文件夹? 我有两个主题,我想结合。 一个是我家的控制器,当用户没有登录。还有一对我的仪表盘控制器,当用户已登录。这些都具有多个CSS和JavaScript文件。

我知道如何使用一个CSS文件做到这一点。 例如:家居控制器只读取home.css。

但我真的想,因为我想留在多个文件组织中家庭控制器的文件夹。

任何帮助,将不胜感激。

Answer 1:

只是想到了一个好主意的我张贴了这个之后。 这是其他任何人有这个问题。

删除要求所有。 所以删除的application.js这条线

//= require_tree .

并从application.css这条线

*= require_tree .

更改看起来像这样在你的application.html.erb

  <%= stylesheet_link_tag "application", params[:controller], :media => "all" %>
  <%= javascript_include_tag "application", params[:controller] %>

添加到您的配置/初始化/ assets.rb

%w( controller_one controller_two controller_three ).each do |controller|
  Rails.application.config.assets.precompile += ["#{controller}.js", "#{controller}.css"]
end

**更换controller_one,二,等..随着你控制器名称。

现在到了凉爽的一部分。 添加一个子文件夹的样式为您的控制器的名字。 我的是在本例中的“家”。 你的CSS文件添加到它。 把你的home.css(在你的主样式表文件夹),并给它这样的代码:

/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
 * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any styles
 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
 * file per style scope.
 *
 *= require home/freelancer
 *= require home/bootstrap
 *= require home/font-awesome
 */

替换“自由职业者”与以往的文件名是什么。 在我的样式表/ home文件夹我的文件名,这个文件,是freelancer.css

我相信这是需要所有子文件夹的方式,但我还不能肯定。 喜欢

*= require home/.

但不积极。



文章来源: Separate CSS Folders for Separate Rails Controllers