我一直在争论这个问题已经有一段时间了,但我仍然不太确定链接样式表的合适位置。我没有问题让样式表工作,但我想知道什么是官方的“railsy”方式来做到这一点。您是否在application.html中链接了所有样式表?
当我创建新视图或查看目录时,我可能会创建一个样式表,其中包含该目录的所有样式。如果目录中有更复杂的页面,我可以创建多个样式表,每个页面一个。现在是否适合在应用程序布局中链接到这些样式,或者仅在使用stylesheet_link_tag加载视图时才加载它?
当我尝试将每个页面加载的样式加载时,它似乎更加缓慢,但是只要将所有样式表都加载到应用程序布局中,它就感觉不对。
如何链接样式表?
答案 0 :(得分:1)
您可以使用content_for
添加这些样式并在每个视图中设置它们。
%html
%head
%title YOUR_APP
= stylesheet_link_tag 'application', media: 'all'
= yield :stylesheet
h2 {
color: blue;
}
= content_for :stylesheet, stylesheet_link_tag("application/home/index")
%h2
My home index
@import 'base/base';
@import 'modules/module';
然后,它只会在您点击home#index
页面时加载。通常我们会在application.scss
(@import '..'
或*= require ...
)中添加所有常用 css,并且只使用content_for
添加最具体的视图css。