3

これはおそらく、依存関係を持つ外部スクリプトを Rails に持ち込む単純なケースです。

Adobe Edge で生成されたアニメーションを Rails アプリ内で動作させようとしています。最初のステップは、Adobe Edge で生成されたすべての js ファイルを含めることですが、これまでのところ、すべての404 Not Found エラーが発生しています。ファイルに含めた EdgeApplication.jsファイル。

ここに私の 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"}]
4

2 に答える 2

1

Edge の aLoader パスを変更する Michael Johnston の解決策は機能しますが、エラーが発生します。ローカルホストにいる間はランダムに取得Uncaught HierarchyRequestError: A Node was inserted somewhere it doesn't belong.しますが、Heroku にデプロイした後はページが更新されるたびに取得します。

さらに、私のアプリは既に上位バージョンの jQuery に依存しているため、Edge アニメーションから追加すると競合が発生する可能性があります。

試行錯誤の後、私はこの解決策を使用することにしました:

  1. アニメーション全体を/public/edgeフォルダーに配置します
  2. アニメーションを iframe に入れます。<iframe class="animation-container" src='/edge/animation.html' />

最もエレガントなものではありませんが、確かに多くの頭痛の種を節約できます。

于 2013-11-27T09:30:25.550 に答える
1

これを機能させる方法は、次のように変更hero_edgePreload.jsされましたhero_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") %>'}
];

必要なものから Adob​​e Edge JS ファイルを削除することもできますapplication.js

asset_pathの画像に追加しhero_edge.jsて変更する必要がありhero_edge.js.erbます。

もっと簡単な方法があれば、私はそれを知りたいです:)

于 2013-10-28T08:12:28.823 に答える