我目前正在测试我的 API,它在 Assets 文件夹中有一个 JS 脚本 - trackmetrics.js。我创建了另一个 Rails 应用程序用于测试目的,并且我尝试从另一个 url localhost:3003 调用 trackmetrics.js 文件
Trackmetrics 应用程序位于 localhost:3000 上,而 简单的应用程序位于 localhost:3003
我的简单应用程序在 View 中有以下代码:
<h1>Welcome#index</h1>
<p>Find me in app/views/welcome/index.html.erb</p>
<%= javascript_include_tag "//localhost:3000/assets/trackmetrics.js" %>
<script>
Trackmetrics.setAuthToken('######################################');
Trackmetrics.send(“page_view”,{test: true});
</script>
简单应用程序是否可以获取 localhost:3000 上 Trackmetrics 中的 trackmetrics.js 文件?我运行了两个应用程序,但在测试时遇到了以下错误:
Started GET "/assets/trackmetrics.js" for 127.0.0.1 at 2014-07-22 21:59:38 -0400
ActionController::RoutingError (No route matches [GET] "/assets/trackmetrics.js"):
我的 Trackmetrics.js 文件如下所示:
var Trackmetrics = {
authToken: null,
setAuthToken: function(auth_token) {
this.authToken = auth_token;
},
send: function(name, data) {
var _bm_request = new XMLHttpRequest();
_bm_request.open("POST", "http://localhost:3000/events.json", true);
_bm_request.setRequestHeader('Content-Type', 'application/json');
_bm_request.onreadystatechange = function() {
// this function runs when the Ajax request changes state.
// https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
};
_bm_request.send(JSON.stringify({auth_token: this.authToken, name: name, data: data}));
}
}
此外,我尝试设置我的 config.serve_static_assets = false
并执行了
rake assets:precompile...and I am still running into the error.
最佳答案
这不是一个应用程序调用另一个应用程序 javascript 的问题。 :3000 上的应用程序似乎无法识别该路线。首先让它在第一个应用程序上运行!
关于javascript - 如何从另一个 Rails 项目调用 javascript 文件? ActionController::RoutingError(没有路由匹配 [GET] "/assets/trackmetrics.js"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900700/