добавление //= require bootstrap приводит к ошибкам в ссылках nav-pills

У меня было прекрасно работающее меню навигационных таблеток для моего приложения rails:

<div class="col-lg-2 col-sm-3">
   <ul class="nav nav-pills nav-stacked">
      <li class="<%= 'active' if current_page?(articles_path) %>"><%= link_to "articles", articles_path, data: { toggle: "pill"} %></li>
      <li class="<%= 'active' if current_page?(appointments_path) %>"><%= link_to "appointments", appointments_path, data: { toggle: "pill"} %></li>
      <li class="<%= 'active' if current_page?(users_path) %>"><%= link_to "users", users_path, data: { toggle: "pill" } %></li>
   </ul>
</div>

Затем я добавил выпадающее меню в другом месте. Поэтому мне нужно было добавить «//= require bootstrap» в application.js:

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .

Выпадающее меню работает нормально, но поскольку я добавил «требовать загрузку», ссылки в меню навигационных таблеток больше не работают. Когда я нажимаю на таблетку, ничего не происходит, и Firefox показывает, например, эту ошибку в консоли:

Ошибка: синтаксическая ошибка, нераспознанное выражение: /appointments

Если я удалю «требовать загрузку», ссылки в меню навигационных таблеток снова будут работать, но выпадающее меню не выпадет.

Любые предложения, что мне нужно изменить в меню навигационных таблеток, когда я использую «требовать бутстрапы» в application.js?

Дальнейшая информация

Gemfile:

source 'https://rubygems.org'

ruby '2.2.4'

gem 'rails',        '4.2.6'
gem 'bcrypt',       '3.1.11'
gem 'bootstrap-sass',    '3.3.6' # needed for bootstrap css
gem 'sass-rails',   '5.0.4'
gem 'uglifier',     '3.0.0'
gem 'coffee-rails', '4.1.1'
gem 'jquery-rails', '4.1.1'
gem 'turbolinks',   '2.5.3'
gem 'jbuilder',     '2.4.1'
gem 'sdoc',         '0.4.0', group: :doc

group :development, :test do
  gem 'sqlite3',     '1.3.11'
  gem 'byebug',      '8.2.2'
  gem 'web-console', '3.1.1'
  gem 'spring',      '1.6.4'
end

group :test do
  gem 'minitest-reporters', '1.1.8'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard', '2.13.0'
  gem 'guard-minitest',     '2.4.4'
end

group :production do
  gem 'pg',             '0.18.4'
  gem 'rails_12factor', '0.0.3'
  gem 'puma',           '3.2.0'
end

приложение.scss:

@import "bootstrap-sprockets";
@import "bootstrap";
@import "/*";
@import "/**/*";

маршруты.rb:

Rails.application.routes.draw do

  get 'sessions/new'

  root             'static_pages#home'
  get 'about'   => 'static_pages#about'
  get 'contact' => 'static_pages#contact'
  get 'articles' => 'administration#articles'
  get 'appointments' => 'administration#appointments'
  get 'createarticle' => 'articles#new'
  get 'createappointment' => 'appointments#new'
  get 'interface' => 'administration#interface'
  get 'help' => 'administration#help'
  get 'createuser' => 'users#new'
  get 'users' => 'administration#users'
  get    'adminlogin'   => 'sessions#new'
  post   'adminlogin'   => 'sessions#create'
  delete 'adminlogout'  => 'sessions#destroy'

  resources :users
  resources :articles
  resources :appointments
end

Полная трассировка стека ошибок:

Sizzle</Sizzle.error() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:1503
Sizzle</Sizzle.tokenize() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:2160
Sizzle</Sizzle.select() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:2581
Sizzle() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:904
.find() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:2827
jQuery.fn.init() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:2950
jQuery() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:76
Tab.prototype.show() bootstrap.self-d0e973a52d36a01036265aeefaf2d1ae3499d2cb231a9be3bd846432daf231de.js:2097
Plugin/<() bootstrap.self-d0e973a52d36a01036265aeefaf2d1ae3499d2cb231a9be3bd846432daf231de.js:2170
.each() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:371
jQuery.prototype.each() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:138
Plugin() bootstrap.self-d0e973a52d36a01036265aeefaf2d1ae3499d2cb231a9be3bd846432daf231de.js:2165
clickHandler() bootstrap.self-d0e973a52d36a01036265aeefaf2d1ae3499d2cb231a9be3bd846432daf231de.js:2194
jQuery.event.dispatch() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:5226
jQuery.event.add/elemData.handle() jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js:487

person Nyawawa    schedule 04.05.2016    source источник
comment
можете ли вы добавить больше информации, например, о драгоценном камне, который вы использовали, и т. д.   -  person Ritikesh    schedule 05.05.2016
comment
Судя по сообщению об ошибке, я предполагаю, что вы допустили ошибку в current_page? Метод. Ты можешь достать и мне это тоже? Кстати, надеюсь, вы добавили включения для звездочек и начальной загрузки в свой application.scss.   -  person Ritikesh    schedule 05.05.2016
comment
Ньявава... покажи свой файл route.rb, пожалуйста. Также ваша полная трассировка стека ошибок   -  person uday    schedule 05.05.2016
comment
добавил мой файл route.rb   -  person Nyawawa    schedule 05.05.2016
comment
добавил трассировку стека @Ritikesh: The current_page? взят из самих рельсов (api.rubyonrails.org/classes/ActionView/Helpers/ UrlHelper.html). Я еще не добавлял включения для sprockets и bootstrap, потому что, когда я добавляю *= require bootstrap, он говорит, что не может найти файл   -  person Nyawawa    schedule 05.05.2016
comment
Ах да, извините, забыл про метод current_page. Слишком долго был на rails3. В любом случае, поскольку вы используете гем bootstrap-sass, я предлагаю вам правильно следовать их документации при настройке. Заметили, что вы использовали require bootstrap генетически, в то время как они предлагают использовать bootstrap-sprockets, которые будут использоваться, а bootstrap может использоваться для определения отдельных компонентов, таких как предупреждение, раскрывающийся список и т. д. Кроме того, если вы хотите, чтобы стили начальной загрузки применялись, обновите ваш файл application.scss.   -  person Ritikesh    schedule 05.05.2016
comment
@Ritikesh спасибо за совет. Я думал, что использую актуальный учебник и не знал, что настройка моего application.css уже устарела.... Я изменил application.css на application.scss и добавил импорт для bootstrap-sprockets и bootstrap. Но это не решило проблему со ссылками.   -  person Nyawawa    schedule 05.05.2016
comment
Хм. Трудно найти, что не так с этим. Вы написали какой-нибудь собственный JS, и если да, можете ли вы проверить, работает ли он? может в консоли?   -  person Ritikesh    schedule 06.05.2016
comment
нет, я еще не писал никаких пользовательских js   -  person Nyawawa    schedule 06.05.2016


Ответы (1)


я добавил этот материал для css и js, после этого у меня все работает нормально.

    %script{src: "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js",
        integrity: "sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS",
        crossorigin: "anonymous"}

также вы используете -> css: @import 'bootstrap';

person mix-fGt    schedule 05.05.2016
comment
где мне это добавить? Я не добавлял @import 'bootstrap' или что-то подобное в файл css. - person Nyawawa; 05.05.2016
comment
Я бы настоятельно не советовал полагаться на сторонние cdns для приложений live prod для ваших ресурсов. А так как он использует драгоценный камень, он может также скомпилировать активы локально. - person Ritikesh; 05.05.2016
comment
а как насчет этого cdn.. Однажды у меня была проблема с загрузкой на героку... Мб, я сделал что-то не так, но когда я добавил cdn в layouts/application.html.haml, это сработало для меня... - person mix-fGt; 06.05.2016
comment
app/assets/stylesheets/custom.css.scss @import bootstrap; get from -> railstutorial book — я думаю, это решение для вашей ситуации. - person mix-fGt; 06.05.2016