【问题标题】:Asset Pipeline not serving assets, specifically Bootstrap in Rails 4.1资产管道不提供资产,特别是 Rails 4.1 中的 Bootstrap
【发布时间】:2014-12-03 16:58:09
【问题描述】:

我有一个相对较新的 Rails 4.1 应用程序,它不通过资产管道提供 JS/CSS。

该应用程序主要是一个 JSON API(命名空间到子域),带有一些基于 Web 的管理工具。我已经安装了 Rails Admin(它成功接收了它的 CSS/JS 并且看起来很棒),但是任何其他 Web 视图都没有从管道中获取资产。

我的具体目标是使用 bootstrap gem 为所有非 Rails Admin 视图提供 Bootstrap。

需要注意的一点 - 最初,我认为这将是一个纯 API,我剥离了 Gem 文件,然后添加了许多与视图相关的 gem。也许这改变了一些默认行为?我当然已经安装了捆绑包。

TL;DR:当我访问 rails_admin 的外部视图时,我没有得到 Bootstrap CSS/JS 并且页面没有样式。

Gemfile 的当前状态(仅显示相关的 Gem,注意我没有 turbolinks)

gem 'rails', '4.1.6'
gem 'pg'
gem 'devise'
gem 'rails_admin'
gem 'sprockets-rails', :require => 'sprockets/railtie'
gem 'uglifier'
gem "bootstrap-sass"
gem 'autoprefixer-rails'
gem 'sass-rails', '~> 4.0.3'

app/assets/javascript/application.js

//= require jquery
//= require jquery_ujs
//= require_tree .

app/assets/stylesheets/bootstrap_config.css.scss

*= require_tree .
*= require_self
*/
@import "bootstrap";

config/application.rb

module Appname
   class Application < Rails::Application
      config.assets.enabled = true

environments/development.rb

...
config.assets.debug = true
config.assets.raise_runtime_errors = true

【问题讨论】:

  • 为什么 bootstrap_config.css.scss 而不是 application.css.scss?您可以使用任何非引导样式吗?
  • 我的印象是这无关紧要。我刚刚尝试了 application.css.scss 并没有什么区别。不,我没有风格。我正在尝试一些通用的 CSS,例如:body { background-color: black; } 并一无所获。
  • 如果名称不同,您需要手动将其添加到预编译文件列表中。无论如何,请确保在布局中包含带有 stylesheet_link_tag 的文件。

标签: ruby-on-rails


【解决方案1】:

代表 Donatas Stundys 回答问题,他在上面的评论中写下了正确答案:

"...确保在布局中包含带有 stylesheet_link_tag 的文件。"

我将文件重命名为 application.css.scss,然后将其包含在我的布局文件的头部:

application.html.erb

<%= stylesheet_link_tag "application" %>

现在我的页面已成功使用 Bootstrap 进行样式设置。不敢相信我找不到在文档中包含该文件的提及。我以为它是通过自动魔法发生的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2013-10-12
    • 2023-04-02
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多