为什么 stylesheet_link_tag 会把目录下所有的 CSS 文件加载??? 今天打开 log 日志文件时发现,server 把 javascripts 目录下所有的 JS 文件都加载了进去,把 stylesheets 目录下所有的文件也都加载了进去。这使我的很困惑。 是不是哪里配置错了,还是在开发的模式下都是这个样子的??
#3 楼 @huacnlee 我把 require_self 前面的 = 去掉了。把 stylesheet_link_tag 改城了
<%= stylesheet_link_tag "application", params[:controller] %>
这样就可以动态的根据控制器的名称加载相应的 CSS 文件
出处 http://caterpillar.onlyfun.net/Gossip/Rails/Assets.html
#6 楼 @tiseheaini 你在开发环境是没问题,你到生成环境试试,一定报错。
你得在 application.rb 搞一堆 config.assets.precompile += ,不是自找麻烦么。
对于单个 controller 特有的样式,很简单,在 application.html 里加上
<body class="<%= controller.controller_name%>">
然后你 Topic 里特有的样式就 .topic .xxxx {} 这样区分
这个特性就是合并 css 来减少 http 请求次数,加快网站访问速度的
我把 application.css 中 *= require_tree . 这一行去掉了,然后在 layouts / application.html.erb 中 stylesheet_link_tag 这一行该成了 <%= stylesheet_link_tag "application", params[:controller] %> 这虽然能临时解决一些问题,不过按照 @ywencn 说的那样做,我将来也会把他改过来