我需要为我的应用程序中的每个用户添加可自定义的界面。因此,经过一番谷歌搜索后,我决定生成 css,为每个用户缓存它并将其链接到视图中。我找到了好帖子并将其用作示例。
所以我的应用程序中有一些结果代码:
在控制器shedule_themes_controller.rb:
...
def get_css
respond_to do |format|
format.css { render :text => "body {\n background-color: blue; \n}", :content_type => Mime::CSS }
end
end
在布局中:
...
<%= stylesheet_link_tag "application" %>
<link href="<%= get_css_path %>" media="screen" rel="stylesheet" type="text/css" />
但是当我启动应用程序时,css 没有加载。它出现 406 不可接受的错误。响应头是:
Cache-Control:no-cache, private
Connection:Keep-Alive
Content-Length:1
Content-Type:text/html; charset=utf-8
如您所见,响应具有内容/类型文本/html,因此是 406 错误。
谁能解释一下,如果请求内容类型是 text/css ,为什么控制器响应 text/html ?
PS 我尝试使用 Google Chrome DEV HTTP CLIENT 手动向 localhost:3000/get_css 发送请求。我设置了 Content-Type: text/css 并且服务器以正确的 css 和 content-type 响应:
body {
background-color: blue;
}
所以可能我在我的布局中链接动态css时犯了一些错误?
谢谢!