2016-08-03 138 views
0

我在资产/样式表位置中有一个clients.css和jobs.css。Rails CSS样式表覆盖对方

每个都有一个相应的控制器。乔布斯是在客户之后用脚手架创造的。 scaffolds.scss文件是空白的。

application.css是空白

当我编码在jobs.css的变化如body{color:black},它改变了客户端/ index.html.erb视图和作业/ index.html.erb视图。

这可能是什么原因?我想有工作和客户单独.css文件..

+0

在你的'application.html.erb'布局中,样式表是如何被需要的? – Jeff

+0

'<%= stylesheet_link_tag'application',media:'all','data-turbolinks-track'=> true%>' – HoosierCoder

回答

3

documentation

链轮串接所有的JavaScript文件合并为一个主js文件 和所有的CSS文件合并成一个主的.css文件。

这意味着什么,当然是,当你做出改变,以jobs.css,你会看到相同的CSS被应用到所有匹配的元素在整个应用程序。所有这些独立的.css文件都可以帮助您从人的角度而不是从应用程序的角度来组织事物。

你可能只想拿出不同的ID,并根据您的页面(如#body_client#body_job)上区分它们的类,但你可以看到这个命名约定如何能得到笨拙为您的应用程序的增长。

拥有单独的资产是可能的,但不是没有一些痛苦。

application.js,删除:

//= require_tree 

application.css,删除:

*= require_tree 

application.html.erb,添加以下内容:

<%= stylesheet_link_tag "application", params[:controller], :media => "all" %> 
<%= javascript_include_tag "application", params[:controller] %> 

config/initializers/assets.rb创建一个新的初始化文件,添加下面的代码:

%w(clients_controller jobs_controller).each do |controller| 
    Rails.application.config.assets.precompile += ["#{controller}.js.coffee", "#{controller}.css"] 
end 

这应该让你设置单独的每页资产。查看原始blog post了解更多详情。

+0

哇......那真是太疯狂了..所有那些都有单独的样式表 – HoosierCoder

+0

是的,我添加了一个替代作为编辑,但它是kludgey。真正的“解决方案”是想出一个您喜欢的所有网页设计。这样,您在初始开发和维护方面的努力就很小。 – MarsAtomic

+0

是的,对所有页面的设计都有意义 – HoosierCoder