0

Я новичок в Rails и извиняюсь, если это глупый вопрос. Но я не могу решить свою проблему: я добавил Bootstrap в новое приложение, но он по-прежнему не использует никаких новых стилей.Ассемблерный трубопровод не работает в 'application.scss' в моем приложении Rails 4.2

Я переименовал application.css в application.scss и создали такую ​​структуру:

|-stylesheets 
    |-elements 
    |--articles 
    |---article.scss 
    |-application.scss 

Application.scss

/* User styles 
* Plugins first 
*/ 
@import "bootstrap-sprockets"; 
@import "bootstrap"; 

@import "elements/**/*"; 

/* 
* This is a manifest file that'll be compiled into application.css, which will include all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the bottom of the 
* compiled file so the styles you add here take precedence over styles defined in any styles 
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new 
* file per style scope. 
* 
*= require_self 
*/ 

В Gem файл я добавил

source 'https://rubygems.org' 
ruby '2.2.0' 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.2' 

# Установка Bootstrap 
gem 'sass-rails' 
gem 'bootstrap-sass' 
#Autoprefixer optional, but recommended. It automatically adds the proper vendor prefixes to your CSS code when it is compiled. 
gem 'autoprefixer-rails' 

application.js

//= require jquery 
//= require jquery_ujs 
//= require bootstrap-sprockets 
//= require_tree . 

Я пытался писать какие-либо правила стиля в article.scss, но мое приложение не использует их, так как любые Bootstrap стилей.

+0

Попробуйте переименовать файл: application.css.scss –

+0

Спасибо за быстрый ответ. Но это не помогает – InspiredByMoon

+0

Попробуйте указать относительный путь к article.scss вместо элементов '@import '/ **/*"; '. Это работает? –

ответ

1

Через несколько часов я нашел проблему - мой pages_controller неверен:

class PagesController < ActionController::Base 
    # Prevent CSRF attacks by raising an exception. 
    # For APIs, you may want to use :null_session instead. 
    protect_from_forgery with: :exception 
end 

вместо:

class PagesController < ApplicationController 
    def index_page 
    end 
end 

Контроллеры должны наследоваться от главного контроллера!

PS: Добавление строки layout "application" к неправильному контроллера также помогло:

class PagesController < ActionController::Base 
    # Prevent CSRF attacks by raising an exception. 
    # For APIs, you may want to use :null_session instead. 
    protect_from_forgery with: :exception 
    layout "application" 
end 

Но я не рекомендую идти по этому пути

2

есть более простой способ, я опишу последовательность: после добавления gem 'bootstrap-sass' делает bundle install, перезапустите сервер чем добавить в config/application.rb следующую строку:

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif) 

для ваших изображений, чем создавать custom.css.scss в app/assets/stylesheets и добавьте туда @import "bootstrap";, в свой custom.css.scss Вы можете написать свои собственные стили

+0

По какой-то причине добавление файла custom.css.scss не помогло. Я уже использовал этот способ в своих предыдущих приложениях, где я использую css вместо css.scss, и это сработало. Но в этом приложении - это не так. – InspiredByMoon

1

Я подозреваю, что у вас есть старшая версия бутстрапа в вашей среде Ent. Попробуйте обновить Gemfile с помощью gem 'bootstrap-sass', '3.3.3' и запустите bundle. Обязательно перезагрузите сервер после обновления.

Кроме того, вы можете просто запустить bundle update.

+0

После 'пакетного обновления' некоторые драгоценные камни были аппроксимированы: ' Установка sass 3.4.13 (была 3.2.19) Установка jquery-rails 4.0.3 (была 3.1.2) Установка sass-rails 5.0.1 (была 4.0. 5) ' Но мое приложение по-прежнему не использует ни Bootstrap, ни мои собственные стили – InspiredByMoon

 Смежные вопросы

  • Нет связанных вопросов^_^