1

我有需要后端 REST API 才能运行的前端内容。API 允许跨域资源共享 (CORS)。通常,我们在本地运行完整的堆栈,包括为开发使用量身定制的用户模式 ​​Nginx 实例,该实例为前端内容提供服务。然而,完整的堆栈有点太多,不能指望兼职承包商争吵。所以我想要一种非常基本的方法,他们可以用来有效并完成工作。

他们目前的解决方案是可怕的:

var port = location.port;
// base url of backend API
var url = window.location['origin'];
if (port != '443') {
    // assume we're running in "development" mode against a staging server
    url = "https://staging-server.somewhere.com";
}

除了这进一步推动了有点笨拙的前端内容之外 - 它阻止了静态内容以各种其他方式托管,包括一套功能和集成测试。

我有一些想法,比如让他们运行一个代理后端 API 的小型 Web 服务器,但我真正想要的是一些更简单的东西,可以让我以url一种不那么笨拙的方式默认。理想情况下,会有某种方式url从被版本控制忽略的文件(例如,.gitignore)进行配置。

4

1 回答 1

-1

我能够创建一个适用于各种本地开发和生产版本的解决方案。

我创建了一些 JavaScript,apiurl.js它与我们所有其他 JavaScript 内容并排放置。如果apiurl.js文件存在,我将其读responseTexteval(). 因此,前端可以根据该文件的内容更改 URL。

例如,apiurl.js有:

var apiurl = "https://staging-server.somewhere.com";

以及处理内容的 JavaScript:

eval(responseText);
if (typeof(apiurl) != undefined) {
    url = apiurl;
}

apiurl.js文件未被版本控制跟踪,并且未在生产中使用。

于 2014-03-17T15:36:19.243 回答