2015-12-21 28 views
0

當我將JavaScript庫添加到Rails資產文件夾,並使用以下代碼在我的erb文件中配置它時: <%= javascript_include_tag('scripts.js') %>,與JavaScript文件關聯的類的HTML代碼加載兩次。JavaScript庫在Rails中加載兩次

我已附加的示例here。當我將JavaScript文件鏈接到公共文件夾時,這個問題不會發生,但是JavaScript不會顯示出來。

的JavaScript

$(function() { 
    $("a.page-scroll").bind("click", function(a) { 
     var b = $(this); 
     $("html, body").stop().animate({ 
      scrollTop: $(b.attr("href")).offset().top 
     }, 1500, "easeInOutExpo"), a.preventDefault() 
    }) 
}) 

Html.erb

<li> 
    <a class="page-scroll" href="#portfolio">Portfolio</a> 
</li> 
<li> 
    <a class="page-scroll" href="#me">About Me</a> 
</li> 
<li> 
    <a class="page-scroll" href="#contact">Contact</a> 
</li> 

有沒有相關的控制檯錯誤。

注:本作品,未經Rails的完美的罰款。

+1

我會建議表現出一些代碼,而不是一個GIF。 – Sinistralis

+0

該視頻並沒有告訴我們很多。你有沒有相關的控制檯信息可以分享? – jmargolisvt

+0

它是什麼JavaScript庫?你的'script.js'代碼是什麼樣的? – Sam

回答

1

如果它是一個標準的Rails項目開箱即用,以及JavaScript /咖啡文件住,然後它會自動通過這條線在應用拉入鐵軌資產管道的lib /資產/ Java腳本或供應商/資產/ JavaScript的內js文件:

// = require_tree。

如果通過application.js(我假設application.js由某個佈局文件通過javascript_include_tag('application')渲染,那麼不需要使用erb文件中的javascript_include_tag,這就是爲什麼其渲染兩次)。

如果js文件居住在這些目錄中的一個,而你再培訓局文件中刪除您javascript_include_tag ....這應該解決您的雙渲染問題。