我有两个不同的布局和两个不同的样式表(每个控制器/动作使用一个)。两个不同的布局,每个样式表对应一个
如何防止以下错误?
线#5提出:app/assets/stylesheets/application.css has already been required
应用/视图/布局/ application.html.erb
2: <html>
3: <head>
4: <title>Blog</title>
5: <%= stylesheet_link_tag "application" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
当其它布局被加载发生同样的错误,但"application"
然后"another_stylesheet_file_in_the_same_folder"
。
我不明白为什么application.css文件能够加载,而第二个布局中有另一个<%= stylesheet_link_tag "another_css_file" %>
行。
难道原因是加载这两个样式表的资产管道? 或者它只是一个继承问题?
posts_controller.rb
class PostsController < ApplicationController
layout :choose_layout
def choose_layout
current_uri = request.env['PATH_INFO']
if current_uri.include?('diashow')
@diashow = true
return 'diashow'
else
@diashow = false
return 'application'
end
end
...
此代码之前就已经加载的应用程序布局已经执行?
有没有办法通过使用before_filter
来解决这个问题? 还是只是我试图做的愚蠢? :)
编辑:
Rails的控制台:
Rendered posts/index.html.erb within layouts/application (10.4ms)
Compiled application.css (2ms) (pid 23453)
Compiled diashow.css (1ms) (pid 23453)
Completed 500 Internal Server Error in 348ms
为什么加载这两个文件?它应该只加载其中的一个。
向我们展示'application.css'和'diashow.css'的内容 – 2012-01-01 23:55:53
是否有必要?他们仍然是相同的。但我无法想象这可能是问题所在。 – Marc 2012-01-02 00:00:36
这可能有帮助。 – 2012-01-02 00:03:24