2016-08-11 38 views
-1

我已經經歷了不少帖子和turbolinks文檔,並且我認爲我還沒有完全掌握它。我試圖完全關閉rails 5應用程序中的turbolinks。以下是我去一下如何從軌道上完全禁用turbo鏈接

  1. 刪除gem 'trubolinks'
  2. 從application.js中
  3. stylesheet_link_tag刪除data-turbolinks-trackjavascript_include_tag

的application.html.erb現在看起來像去除的//=require turbolinks所有出現此

<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在body標籤應該幫助禁用它在這個佈局中的所有網頁的想法。但是,這並沒有幫助,頁面會失敗,錯誤

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中刪除gem'turbolinks'行。
  2. 從app/assets/javascripts/application.js中刪除// = require turbolinks。
  3. 從您的app/views/layouts/application.html.erb中刪除兩個「data-turbolinks-track」=> true哈希鍵/值對 。
+0

如果你看看共享的代碼,我已經完成了所有這些! :-) –