我注意到我的所有css文件都链接到了erb视图文件。它与资产管道或procket轨道有什么关系吗?
我想知道如何禁用该功能并使其成为只有某些css文件链接到特定的erb文件。
以下是该项目的github链接:https://github.com/PabiGamito/pandora
谢谢。
答案 0 :(得分:1)
如果您在说“erb files”时表示“观看”,那么您可能需要查看app/views/layouts/application.html.erb
。在第5行,你有这个:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
这包括每页上的样式表。这会创建一个链接标记,其中application.css
文件是目标(如果您进入资产,则应找到application.css
)。
为了只在某些页面上包含某些样式表,您将不得不进行一系列更改。
首先,您必须在链接标记下方添加content_for
。这允许您定义要在另一个视图中的该点添加的内容。您可能希望在包含以下内容的样式表链接下添加一行:
<%= content_for :stylesheets if content_for?(:stylesheets) %>
这样做会增加:stylesheets
内容的内容(如果已定义)。
您必须修改application.css.scss
文件。在第13行,您有require_tree .
,这需要app/assets/stylesheets
目录下的所有文件,不是您想要的内容。您必须将其删除,并手动要求包含application.css
文件的每个文件。
您必须创建一个名为(例如)admin.css(.scss)
的新文件(.scss
是可选的)。在该文件中,您可以放置任何您想要的样式。由于您从应用程序css文件中删除了require_tree .
,因此除非您为其添加require
指令,否则它将不会被包含(但您不想这样做)。
无论您想拥有什么视图,都必须放置以下内容:
<% content_for :stylesheets do %>
<%= stylesheet_link_tag 'admin', media: 'all', 'data-turbolinks-track' => true %>
<% end %>
那应该这样做。