TAMELENTEL的链接包括在HTML中显示,但当Turbolinks正在开启时,样式不会应用?
-
21-12-2019 - |
题
我正在构建一个大网站,并希望有很多控制器特定的CSS。
我想使用Turbolinks,但是当Turbolinks加载新页面时,不应用控制器特定样式。
但是,如果我处于同一页面并单击“刷新”按钮,则样式效果很好。因此,风格位于HTML中,但由于Turbolinks的方式,它们不会被应用。在我的布局模板文件中我有这个:
= stylesheet_link_tag "application", :media => "all"
= stylesheet_link_tag params[:controller]
.
侧面注意
在我的application.css文件中我有
*= require_directory .
.
我理解我可以更改为此:
*= require_tree .
.
要包含所有CSS而不具有此问题,但这似乎是一个糟糕的解决方案。我想防止任何加载这些样式站点的解决方案。
解决方案
如果您想要特定于控制器的样式表,则可以在应用程序布局中包含此方法:
<%= stylesheet_link_tag controller_name, media: "all", "data-turbolinks-track" => true %>
.
在您的应用程序中,不要在require
Manifest中调用任何以控制器为中心的依赖项;将控制器样式表和应用程序样式表视为独立人士
Controller_name 在Rails中是一种帮助您的串控制器的名称:
将类名从类似的东西转换 “onemodule :: twomodule :: neatcontroller”到“neat”。
不隶属于 StackOverflow