Ruby on rails Rails—在所有页面上加载的资源

Ruby on rails Rails—在所有页面上加载的资源,ruby-on-rails,asset-pipeline,Ruby On Rails,Asset Pipeline,所以我有点迷路了。我的所有CSS/SCSS文件都加载到我的应用程序的任何地方。但我有两种不同的设计(正面和背面),我想分开。我如何才能做到这一点? 另外,加载所有的js/css是没用的,即使在没有使用它们的地方。我怎样才能控制它 在application.js和application.css中,默认情况下有一个指令:require\u tree。它将加载所有js和css文件,以便稍后进行预编译。这样做是为了让客户端只下载一次资产包(因为它将被浏览器缓存),并加快应用程序的速度 如果要为每个控制器

所以我有点迷路了。我的所有CSS/SCSS文件都加载到我的应用程序的任何地方。但我有两种不同的设计(正面和背面),我想分开。我如何才能做到这一点?

另外,加载所有的js/css是没用的,即使在没有使用它们的地方。我怎样才能控制它

application.js
application.css
中,默认情况下有一个指令:
require\u tree
。它将加载所有js和css文件,以便稍后进行预编译。这样做是为了让客户端只下载一次资产包(因为它将被浏览器缓存),并加快应用程序的速度

如果要为每个控制器加载特定的javascript或样式表文件,请删除
require\u tree
指令,并将它们包含在各自的控制器中:

<%= javascript_include_tag params[:controller] %> or <%= stylesheet_link_tag params[:controller] %>

检查一下:

你想要做的是控制你的布局

由于你的问题目前过于宽泛,没有人能给你一个像样的具体答案,这就像说“告诉我天体物理学,我现在不知道如何发射火箭”

我建议您先从与布局相关的rails指南开始,然后在您更好地理解之后再回答一个更具体的问题

还有一个关于RailsCasts的11分钟视频,它将帮助您了解和控制资产管道:

你要说的是,你的应用程序是关于管理项目的

  • 制作一个名为say project-manifest.css的application.css文件的副本,并使用与application.css相同的结构来加载所需的样式表

  • 复制视图/layouts/application.html.erb,即projects-layout.html.erb

  • 在新的projecs布局文件中,更新对css的引用以指向project-manifest.css

  • 指向控制器代码以使用新布局

  • 假设你有:

    # app/controllers/ProjectsController.rb
    
    def show
      # code here
      # rails does a default render layout: 'application', its overwritten by adding an explict render
      render layout: 'project-layout'
    end
    

    更具体地说,我有一个css文件,它重载了一些我只想在我的应用程序前端使用的类。我应该把文件放在哪里,这样它就不会在整个应用程序中使用,而只在前端使用?我给你的说明将帮助你做到这一点,观看资产管道视频并快速阅读布局指南,然后我的说明应该有意义。您在rails中创建的每个页面当前都包含文件/app/layouts/application.css,您需要创建一个新的布局文件,该文件指向它自己的css,然后指向您想要的页面。正如您开始时所建议的那样您可以下载x-RayRails gem,它可以帮助您直观地看到rails应用程序中来自何处的内容。可能重复的