css - rails : How do you associate a stylesheet to a layout?

标签 css ruby-on-rails ruby-on-rails-3

我的应用程序有一个 Controller ,它使用称为“特殊”的不同布局:

class SessionsController < ApplicationController
  layout "special"
  ...
end

所以我创建了一个新的layouts/special.html.erb:

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <%= stylesheet_link_tag "special" %>
  <%= csrf_meta_tags %>
</head>
<body>
 <%= yield %>
</body>
</html>

我还新建了一个对应的stylesheets/special.css

问题是当我尝试访问具有“特殊”布局的页面时出现异常:

Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Sessions#new

special.css isn't precompiled

我已经执行了 bundle exec rake assets:precompile,但它没有解决问题。 怎么了?如何将样式表关联到 Rails 中的布局?

最佳答案

默认情况下,Rails 只预编译您的 application.cssapplication.js 文件(或它们的 .scss.less .coffee 等价物)。

如果要预编译其他文件,必须将其添加到 config/environments/production.rbprecompile 数组中,如下所示:

config.assets.precompile += %w( special.css )

参见:http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets

关于css - rails : How do you associate a stylesheet to a layout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781281/

相关文章:

javascript - 表 (ng-repeat) 无法通过多个 ajax 调用正确加载

ruby-on-rails - Rails 3.0 中的 f.error_messages

html - 如何使用 Ruby on Rails 创建简单的刷新页面链接

ruby-on-rails - OmniAuth 不适用于 Rails3 中的 Route Globbing

javascript - Rails - 如何向使用 javascript 创建的表单添加 CSRF 保护?

python - BeautifulSoup 经典混淆

css - 使用 ng-table 时如何编辑排序字形的颜色?

html - Safari -webkit-optimize-contrast 不适用于背景图像

ruby-on-rails-3 - Rails Nginx 乘客无法结帐 session ,因为发生了生成错误

ruby-on-rails-3 - Rails 3. 获取最新更新