2013-04-27 107 views
3

這可能是一個簡單的例子,它將帶有依賴關係的外部腳本導入到Rails中。將Adobe Edge腳本添加到Rails資產管道中

我試圖讓我的Adobe Edge生成的動畫在我的Rails應用程序中工作,第一步是包括所有的Adobe Edge生成的js文件,但到目前爲止我只是得到一堆404沒有找到Application.js文件中包含的所有Edge文件的錯誤

這裏是我的application.js文件

//= require jquery 
//= require jquery_ujs 
//= require underscore 
//= require backbone 
//= require california_internet 
//= require hero_edgePreload 
//= require edge_includes/edge.1.5.0.min 
//= require hero_edge 
//= require hero_edgeActions 

這裏是Edge的Preloader.js是如何試圖找到一些文件...

aLoader=[{load:"edge_includes/jquery-1.7.1.min.js"},{load:"edge_includes/edge.1.5.0.min.js"},{load:"hero_edge.js"},{load:"hero_edgeActions.js"}] 

回答

1

我得到這個工作的方式是改變hero_edgePreload.jshero_edgePreload.js.erb

,並更改:

aLoader=[ 
    {load:"edge_includes/jquery-1.7.1.min.js"}, 
    {load:"edge_includes/edge.1.5.0.min.js"}, 
    {load:"hero_edge.js"}, 
    {load:"hero_edgeActions.js"} 
]; 

要:

aLoader=[ 
    // {load:"edge_includes/jquery-1.7.1.min.js"}, Already required in application.js 
    {load:'<%= asset_path("edge.1.5.0.min.js") %>'}, 
    {load:'<%= asset_path("hero_edge.js") %>'}, 
    {load:'<%= asset_path("hero_edgeActions.js") %>'} 
]; 

您在application.js需要太多可以刪除任何Adobe邊緣JS文件。

您必須添加asset_pathhero_edge.js中的任何圖像,並將其更改爲hero_edge.js.erb

如果有一個更簡單的方法,我很想知道吧:)

1

邁克爾·約翰斯頓的改變Edge的aLoader路徑工程的解決方案,但給人的錯誤。在本地主機上,我會隨機獲得Uncaught HierarchyRequestError: A Node was inserted somewhere it doesn't belong.,而在每次刷新頁面後部署到Heroku。

此外,我的應用程序依賴jQuery已經在更高版本 - 因此添加邊緣動畫中的一個可能會導致衝突。

試錯(S)後,我決定使用此解決方案:

  1. 地方整個動畫到/public/edge文件夾
  2. 把動漫變成一個iframe:<iframe class="animation-container" src='/edge/animation.html' />

不是最優雅的一個,但肯定會節省很多頭痛。