我正在构建一个大网站,并希望有很多控制器特定的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”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top