我正在用红宝石构建一个橄榄球联盟网页。我创建了三个页面(脚手架):新闻,统计数据和页首横幅。它们每个都有一个scss文件,并且也受application.scss
和影响scaffolds.scss
。
当我将stats页面中表格的背景颜色(或其他任何颜色)stats.scss
更改为red(只是随机颜色)时,新闻视图和页首横幅视图也会受到影响,并且即使我将其设置为红色,更改为自己的scss文件中的其他颜色(例如蓝色和绿色)。
我不明白为什么会这样。该stats.scss
文件不应该仅影响统计信息视图吗?
颜色也没有在application.scss
或scaffolds.scss
文件中设置,所以我不知道为什么每个视图都受stats.scss
文件影响。
这是因为Rails(或精确地说是资产管道)将.scss
在开发环境的每个页面中包含所有文件。右键单击HTML页面->单击“查看页面源代码”,您可以看到所有.scss
文件。
导轨让你的文件结构像news.scss
或leaderboard.scss
在css
文件夹中,这样就可以组织你的控制器的特定代码,以使你的代码的生活生产。然后,Rails将application.scss
在生产环境中将所有这些文件捆绑在一起并最小化/优化为一个文件。
当我在stats.scss中将统计页面的表(或其他任何东西)的背景颜色更改为红色(只是随机颜色)时,新闻视图和页首横幅视图也会受到影响,并且即使我将其颜色更改为红色,在自己的scss文件中将它们设置为其他颜色(例如蓝色和绿色)。
这是因为您的leaderboard
和news.scss
会先加载,然后再stats.scss
加载。Rails在使用资产管道将加载升序的CSS文件require tree .
中application.scss
。因此,颜色值leaderboard.scss
和news.scss
不作为申请stats.scss
在最后的inluded。
您应该考虑使用其他类或使用全局背景类颜色。例如:
// news.scss
.news-table{
background: "yellow";
}
// stats.scss
.stats-table{
background: "red";
}
然后可以在news.html.erb
文件中使用:
<table class="news-table">...</table>
或者,您可以通过全局方式执行此操作:
// application.scss
.red-bg{
background: red;
}
.yellow-bg{
background: yellow;
}
然后在您的news.html.erb
和stats.scss
文件中:
// news.html.erb
<table class="red-bg">...</table>
// stats.html.erb
<table class="yellow-bg">...</table>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句