2016-08-11 9 views
-1

Я просмотрел довольно много сообщений и документации для турбовинтов, и я думаю, что еще не получил его. Я пытаюсь полностью отключить turbolinks в рельсах 5 приложений. Вот как я ходил онкак отключить турбо-звенья полностью от рельсов

  1. Удалены gem 'trubolinks'
  2. удалены все вхождения //=require turbolinks из application.js
  3. удалены data-turbolinks-track из stylesheet_link_tag и javascript_include_tag

application.html.erb теперь выглядит следующим образом это

<html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title><%= content_for?(:title) ? yield(:title) : "Website" %></title> 
    <meta name="description" content="<%= content_for?(:description) ? yield(:description) : "Website" %>"> 
    <%= stylesheet_link_tag 'application', media: 'all' %> 
    <%= stylesheet_link_tag params[:controller] %> 
    <%= javascript_include_tag 'application' %> 
    <%= javascript_include_tag :modernizr %>  
    <%= javascript_include_tag params[:controller] %> 
    <%= if(params[:action].eql?'contact') 
      javascript_include_tag 'https://www.google.com/recaptcha/api.js?onload=vcRecaptchaApiLoaded&render=explicit' , async: 'async', defer: 'defer' 
     end 
    %> 
    <%= csrf_meta_tags %> 
    </head> 
    <body data-turbolinks='false'> 
    ... 
    </body> 
</html> 

application.js файл:

//= require jquery 
//= require jquery_ujs 
//= require lodash 
//= require bootstrap-sprockets 
//= require jquery.sticky 

и application.css

@import "bootstrap-sprockets"; 
@import "bootstrap"; 
@import "font-awesome-sprockets"; 
@import "font-awesome"; 
@import "normalize-rails"; 
@import "animate"; 
.... 
/* other css stuff */ 

Я думал, используя data-turbolinks=false на тело тега должно помочь отключить его для всех страниц в этой схеме. Но это не помогло, страницы не загружаются с ошибкой

Sprockets::FileNotFound at/
couldn't find file 'turbolinks' with type 'application/javascript' 
Checked in these paths: 
    /Users/anadi/Code/website/app/assets/config 
    /Users/anadi/Code/website/app/assets/fonts 
    /Users/anadi/Code/website/app/assets/images 
    /Users/anadi/Code/website/app/assets/javascripts 

в этой строке на главной странице

<%= image_tag("pages/home/xyz_logo.png", class: "img-responsive", alt: "Customer") %>

, если я смотрю на трассировку стека, ActionView всегда зависит от turbolinks :

sprockets (3.7.0) lib/sprockets/directive_processor.rb:182:in `rescue in block in process_directives' 
    sprockets (3.7.0) lib/sprockets/directive_processor.rb:179:in `block in process_directives' 
    sprockets (3.7.0) lib/sprockets/directive_processor.rb:178:in `process_directives' 
    sprockets (3.7.0) lib/sprockets/directive_processor.rb:83:in `_call' 
    sprockets (3.7.0) lib/sprockets/directive_processor.rb:68:in `call' 
    sprockets (3.7.0) lib/sprockets/processor_utils.rb:75:in `call_processor' 
    sprockets (3.7.0) lib/sprockets/processor_utils.rb:57:in `block in call_processors' 
    sprockets (3.7.0) lib/sprockets/processor_utils.rb:56:in `call_processors' 
    sprockets (3.7.0) lib/sprockets/loader.rb:134:in `load_from_unloaded' 
    sprockets (3.7.0) lib/sprockets/loader.rb:60:in `block in load' 
    sprockets (3.7.0) lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache' 
    sprockets (3.7.0) lib/sprockets/loader.rb:44:in `load' 
    sprockets (3.7.0) lib/sprockets/cached_environment.rb:20:in `block in initialize' 
    sprockets (3.7.0) lib/sprockets/cached_environment.rb:47:in `load' 
    sprockets (3.7.0) lib/sprockets/bundle.rb:23:in `block in call' 
    sprockets (3.7.0) lib/sprockets/utils.rb:196:in `dfs' 
    sprockets (3.7.0) lib/sprockets/bundle.rb:24:in `call' 
    sprockets (3.7.0) lib/sprockets/processor_utils.rb:75:in `call_processor' 
    sprockets (3.7.0) lib/sprockets/processor_utils.rb:57:in `block in call_processors' 
    sprockets (3.7.0) lib/sprockets/processor_utils.rb:56:in `call_processors' 
    sprockets (3.7.0) lib/sprockets/loader.rb:134:in `load_from_unloaded' 
    sprockets (3.7.0) lib/sprockets/loader.rb:60:in `block in load' 
    sprockets (3.7.0) lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache' 
    sprockets (3.7.0) lib/sprockets/loader.rb:44:in `load' 
    sprockets (3.7.0) lib/sprockets/cached_environment.rb:20:in `block in initialize' 
    sprockets (3.7.0) lib/sprockets/cached_environment.rb:47:in `load' 
    sprockets (3.7.0) lib/sprockets/base.rb:66:in `find_asset' 
    sprockets (3.7.0) lib/sprockets/base.rb:73:in `find_all_linked_assets' 
    sprockets (3.7.0) lib/sprockets/manifest.rb:134:in `block in find' 
    sprockets (3.7.0) lib/sprockets/manifest.rb:133:in `find' 
    sprockets-rails (3.1.1) lib/sprockets/railtie.rb:50:in `precompiled_assets' 
    sprockets-rails (3.1.1) lib/sprockets/railtie.rb:35:in `asset_precompiled?' 
    sprockets-rails (3.1.1) lib/sprockets/railtie.rb:250:in `block (3 levels) in <class:Railtie>' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:342:in `precompiled?' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:346:in `raise_unless_precompiled_asset' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:313:in `asset_path' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:85:in `block in resolve_asset_path' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:225:in `block in resolve_asset' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:224:in `resolve_asset' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:84:in `resolve_asset_path' 
    sprockets-rails (3.1.1) lib/sprockets/rails/helper.rb:74:in `compute_asset_path' 
    actionview (5.0.0) lib/action_view/helpers/asset_url_helper.rb:144:in `asset_path' 
    actionview (5.0.0) lib/action_view/helpers/asset_url_helper.rb:311:in `image_path' 
    actionview (5.0.0) lib/action_view/helpers/asset_tag_helper.rb:214:in `image_tag' 

похоже звездочками по-прежнему ожидает turbolinks JS или IMAGE_TAG URL ожидает. Я не хочу заканчивать добавлением data: { turbolinks: false } по каждой ссылке или изображению. Как это сделать?

ответ

0

я делал это неправильно, возможно, вновь включить все это, добавил data-turbolinks-track => true также, и сохранены <body data-turbolinks='false'>. Он работает так, как ожидалось, без ошибок.

1
  1. Удалите из турникеты Gemfile линию «turbolinks».
  2. Удалите // = require turbolinks из вашего приложения/assets/javascripts/application.js.
  3. Удалите две пары «data-turbolinks-track» => true hash key/value из вашего приложения/views/layouts/application.html.erb.
+0

Если вы посмотрите на общий код, я уже сделал все это! :-) –