所以我有点迷失在这里。我的所有CSS / SCSS文件都在我的应用程序的各处加载。但我有两个不同的设计(正面和背面),我想分开。我怎样才能做到这一点?
加上所有js / css都被加载,即使它们没有被使用,也是无用的。我怎么能控制它?
答案 0 :(得分:1)
在您的application.js
和application.css
中,默认情况下会有一个指令:require_tree
。它将加载您稍后要预编译的所有js和css文件。这样做是为了使客户端只下载一次资产数据包(因为它将被浏览器缓存)并使应用程序更快。
如果要为每个控制器加载特定的javascript或样式表文件,请删除require_tree
指令并将其包含在各自的控制器中:
<%= javascript_include_tag params[:controller] %> or <%= stylesheet_link_tag params[:controller] %>
检查出来:http://guides.rubyonrails.org/asset_pipeline.html#controller-specific-assets
答案 1 :(得分:1)
您想要做的是控制您的布局。
由于你的问题目前过于宽泛,某人没有给你一个体面的具体答案,这就像是说'告诉我有关天体物理学的信息,我现在不明白如何发射火箭'。
我建议从有关布局的导轨指南开始,然后在您更好地理解之后再回过头来提出更具体的问题。
http://guides.rubyonrails.org/layouts_and_rendering.html
RailsCasts还有一个很棒的11分钟视频,可以帮助您理解和控制资产管道:http://railscasts.com/episodes/279-understanding-the-asset-pipeline
你要去的地方就是说你的应用程序是关于管理项目的。
制作一个名为project-manifest.css的application.css文件的副本,并使用与该application.css相同的结构来加载您想要的样式表。
制作views / layouts / application.html.erb的副本以说明projects-layout.html.erb
在新的projecs-layout文件中,更新对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