这可能是将带有依赖项的外部脚本引入Rails的简单案例。
我试图让我的Adobe Edge生成的动画在我的Rails应用程序中运行,第一步是包含所有Adobe Edge生成的js文件,但到目前为止我只是为Application.js
文件中包含的所有Edge文件获取了大量 404 Not Found Errors 。
这是我的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"}]
答案 0 :(得分: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") %>'}
];
您也可以在application.js
中删除您的要求中的所有Adobe Edge JS文件。
您必须将asset_path
添加到hero_edge.js
中的任何图片,并将其更改为hero_edge.js.erb
。
如果有更简单的方法,我很乐意知道:)
答案 1 :(得分:1)
迈克尔约翰斯顿改变Edge的aLoader路径的解决方案可行,但会出错。在localhost上,我会随机获得Uncaught HierarchyRequestError: A Node was inserted somewhere it doesn't belong.
,而在每次页面刷新后部署到Heroku之后。
此外,我的应用程序依赖于更高版本的jQuery - 因此添加Edge动画中的一个可能会导致冲突。
经过反复试验,我决定使用这个解决方案:
/public/edge
文件夹<iframe class="animation-container" src='/edge/animation.html' />
不是最优雅的,但肯定会省去很多麻烦。