2012-07-12 21 views
3

Soundmanager 2(http://www.schillmania.com/projects/soundmanager2/doc/download/)在我的ruby on rails應用程序中不起作用。soundmanger 2在rails應用程序中不工作

只有如果我添加?assets_debug = 1它的工作原理 我試過所有sm.js文件,並且它們都不能在每次應用程序重新啓動時運行。

錯誤:

soundManager is not defined 
[Break On This Error] 

soundManager.setup({ 

,並從內螢火JS代碼:

<script> 
//<![CDATA[ 
soundManager.setup({ 
url: '/assets/', 
debugMode: false, 
onready: function() { 
var mySound = soundManager.createSound({ 
id: 'aSound', 
url: '/assets/start.mp3', 
onload: function() { console.log('sound loaded!', this); } 
}); 
mySound.play(); 
}, 
ontimeout: function() { 
} 
}); 
//]]> 
</script> 

任何一個想法,爲什麼出現這種情況?

+0

不同的js文件可能正在使用中,那些未被縮小的文件。 你檢查過了嗎? – 2012-09-09 12:49:01

+0

我試過非縮小的似乎是我的模態搞亂了這個,還沒有能夠解決這個問題:( – Rubytastic 2012-09-09 23:21:53

回答

1

很可能您有兩個版本的js - 原始源文件以及爲Rails 3資產管道使用而創建的編譯版本(縮小,連接等)。

有時,JS中的微妙錯誤會導致編譯過程生成無效的代碼(例如,如果文件沒有以換行符結尾並且另一個文件被粘貼)。當您使用assets_debug=1運行時,您告訴Rails使用不受影響的原始源文件。

調試這是一個挑戰 - 無論是在Firebug或Chrome調試器中,縮小的代碼最多難以閱讀。但它可以給你一個線索。

另一個可能的原因是Rails默認版本和聲音管理器使用的版本之間的jQuery版本差異依賴未解決。您可能需要查看jQuery的版本。但是,您報告的錯誤並不表明這是一個原因。

最後,確保任何實際的依賴性在app/assets/javascripts/application.js文件見面,也許通過更改項目之前或之後,這些線,這實際上不是指定的順序評論:-)

//= require jquery 
//= require jquery_ujs 
+0

這固定了我,謝謝 – Rubytastic 2013-10-14 08:10:56

相關問題